Skip to content

Commit

Permalink
新增cpvTickOffsetAngle属性
Browse files Browse the repository at this point in the history
  • Loading branch information
jenly1314 committed Sep 2, 2021
1 parent b8e84c4 commit 859f68c
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 62 deletions.
44 changes: 23 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

[![Download](https://img.shields.io/badge/download-App-blue.svg)](https://raw.githubusercontent.com/jenly1314/CircleProgressView/master/app/release/app-release.apk)
[![JCenter](https://img.shields.io/badge/JCenter-1.1.2-46C018.svg)](https://bintray.com/beta/#/jenly/maven/circleprogressview)
[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314/circleprogressview)](https://repo1.maven.org/maven2/com/github/jenly1314/circleprogressview)
[![JitPack](https://jitpack.io/v/jenly1314/CircleProgressView.svg)](https://jitpack.io/#jenly1314/CircleProgressView)
[![CI](https://travis-ci.org/jenly1314/CircleProgressView.svg?branch=master)](https://travis-ci.org/jenly1314/CircleProgressView)
[![CircleCI](https://circleci.com/gh/jenly1314/CircleProgressView.svg?style=svg)](https://circleci.com/gh/jenly1314/CircleProgressView)
Expand Down Expand Up @@ -39,6 +40,7 @@ CircleProgressView for Android 是一个圆形的进度动画控件,动画效
| cpvCirclePadding | dimension | 10dp | 外圆环刻度与内圆环间距 |
| cpvTickSplitAngle | integer | 5 | 刻度间隔的角度大小 |
| cpvBlockAngle | integer | 1 | 刻度的角度大小 |
| cpvTickOffsetAngle | integer | 1 | 刻度偏移的角度大小 |
| cpvTurn | boolean | false | 是否旋转 |
| cpvCapRound | boolean | true | 是否是圆形线冒(圆角弧度) |
| cpvLabelPaddingLeft | dimension |0dp| 文本居左边内间距 |
Expand All @@ -49,36 +51,32 @@ CircleProgressView for Android 是一个圆形的进度动画控件,动画效

## 引入

### Maven:
```maven
<dependency>
<groupId>com.king.view</groupId>
<artifactId>circleprogressview</artifactId>
<version>1.1.2</version>
<type>pom</type>
</dependency>
```
### Gradle:
```gradle
implementation 'com.king.view:circleprogressview:1.1.2'
```

### Lvy:
```lvy
<dependency org='com.king.view' name='circleprogressview' rev='1.1.2'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
```

###### 如果Gradle出现compile失败的情况,可以在Project的build.gradle里面添加如下:(也可以使用上面的GitPack来complie)
1. 在Project的 **build.gradle** 里面添加远程仓库

```gradle
allprojects {
repositories {
maven { url 'https://dl.bintray.com/jenly/maven' }
//...
mavenCentral()
}
}
```

2. 在Module的 **build.gradle** 里面添加引入依赖项
```gradle
implementation 'com.github.jenly1314:circleprogressview:1.1.3'
```


以前发布至JCenter的版本

```gradle
implementation 'com.king.view:circleprogressview:1.1.2'
```

## 示例

布局示例
Expand All @@ -104,6 +102,10 @@ allprojects {

## 版本记录

#### v1.1.3:2021-9-2 (从v1.1.3开始发布至 MavenCentral)
* 对外暴露更多getter和setter方法
* 新增cpvTickOffsetAngle属性

#### v1.1.2:2020-12-2
* 优化设置渐变色过程处理

Expand Down
8 changes: 4 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ android {

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation deps.test.junit
androidTestImplementation deps.test.runner
androidTestImplementation deps.test.espresso
testImplementation deps.junit
androidTestImplementation deps.runner
androidTestImplementation deps.espresso

implementation deps.support.appcompat
implementation deps.appcompat

implementation project(':lib')
}
9 changes: 5 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ buildscript {
apply from: 'versions.gradle'
repositories {
google()
jcenter()
mavenCentral()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.novoda:bintray-release:0.9'
classpath "com.android.tools.build:gradle:$versions.gradle"
// classpath 'com.novoda:bintray-release:0.9.2'
classpath "com.vanniktech:gradle-maven-publish-plugin:$versions.mavenPublish"

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand All @@ -20,8 +21,8 @@ buildscript {
allprojects {
repositories {
google()
jcenter()
mavenCentral()
jcenter()
}
}

Expand Down
18 changes: 18 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,21 @@ org.gradle.jvmargs = -Xmx1536m
android.useAndroidX=true
android.enableJetifier=true

VERSION_NAME=1.1.3
VERSION_CODE=6
GROUP=com.github.jenly1314

POM_DESCRIPTION=CircleProgressView for Android
POM_URL=https://github.com/jenly1314/CircleProgressView
POM_SCM_URL=https://github.com/jenly1314/CircleProgressView
POM_SCM_CONNECTION=scm:git@github.com:jenly1314/CircleProgressView.git
POM_SCM_DEV_CONNECTION=scm:git@github.com:jenly1314/CircleProgressView.git
POM_LICENCE_NAME=The MIT License
POM_LICENCE_URL=https://opensource.org/licenses/mit-license.php
#POM_LICENCE_NAME=The Apache Software License, Version 2.0
#POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_DEVELOPER_ID=jenly
POM_DEVELOPER_NAME=Jenly Yu
RELEASE_REPOSITORY_URL=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
SNAPSHOT_REPOSITORY_URL=https://s01.oss.sonatype.org/content/repositories/snapshots/
RELEASE_SIGNING_ENABLED=false
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
9 changes: 5 additions & 4 deletions lib/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
apply plugin: 'com.android.library'
apply from: 'bintray.gradle'
//apply from: 'bintray.gradle'
apply plugin: "com.vanniktech.maven.publish"

android {
compileSdkVersion build_versions.compileSdk
Expand Down Expand Up @@ -28,8 +29,8 @@ android {

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation deps.test.junit
androidTestImplementation deps.test.runner
androidTestImplementation deps.test.espresso
testImplementation deps.junit
androidTestImplementation deps.runner
androidTestImplementation deps.espresso

}
3 changes: 3 additions & 0 deletions lib/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
POM_NAME=CircleProgressView
POM_ARTIFACT_ID=circleprogressview
POM_PACKAGING=aar
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@ public class CircleProgressView extends View {
*/
private int mBlockAngle = 1;

/**
* 刻度偏移的角度大小
*/
private float mTickOffsetAngle = 0;

/**
* 总刻度数
*/
Expand Down Expand Up @@ -243,6 +248,8 @@ private void init(Context context,AttributeSet attrs){
mTickSplitAngle = a.getInt(attr,mTickSplitAngle);
}else if(attr == R.styleable.CircleProgressView_cpvBlockAngle){
mBlockAngle = a.getInt(attr,mBlockAngle);
}else if(attr == R.styleable.CircleProgressView_cpvTickOffsetAngle){
mTickOffsetAngle = a.getInt(attr,0);
}else if(attr == R.styleable.CircleProgressView_cpvTurn){
isTurn = a.getBoolean(attr,isTurn);
}else if(attr == R.styleable.CircleProgressView_cpvCapRound){
Expand Down Expand Up @@ -352,7 +359,7 @@ private void drawArc(Canvas canvas){
mPaint.setShader(null);
mPaint.setColor(mNormalColor);
//绘制外边框刻度
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle, mBlockAngle, false, mPaint);
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle + mTickOffsetAngle, mBlockAngle, false, mPaint);
}

for (int i = currentBlockIndex; i < currentBlockIndex + currentBlockIndex; i++) {
Expand All @@ -363,7 +370,7 @@ private void drawArc(Canvas canvas){
mPaint.setColor(mProgressColor);
}
//绘制外边框刻度
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle, mBlockAngle, false, mPaint);
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle + mTickOffsetAngle, mBlockAngle, false, mPaint);
}
}else{
for (int i = 0; i < mTotalTickCount; i++) {
Expand All @@ -375,13 +382,13 @@ private void drawArc(Canvas canvas){
mPaint.setColor(mProgressColor);
}
//绘制外边框刻度
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle, mBlockAngle, false, mPaint);
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle + mTickOffsetAngle, mBlockAngle, false, mPaint);
} else if(mNormalColor != 0){
//未选中的刻度
mPaint.setShader(null);
mPaint.setColor(mNormalColor);
//绘制外边框刻度
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle, mBlockAngle, false, mPaint);
canvas.drawArc(rectF, i * (mBlockAngle + mTickSplitAngle) + mStartAngle + mTickOffsetAngle, mBlockAngle, false, mPaint);
}

}
Expand Down Expand Up @@ -440,9 +447,9 @@ private void drawText(Canvas canvas){
mTextPaint.setTextAlign(Paint.Align.CENTER);

Paint.FontMetrics fontMetrics = mTextPaint.getFontMetrics();
// 计算文字高度 
// 计算文字高度
float fontHeight = fontMetrics.bottom - fontMetrics.top;
// 计算文字baseline 
// 计算文字baseline
float textBaseX = getWidth() / 2 + mLabelPaddingLeft - mLabelPaddingRight;
float textBaseY = getHeight() - (getHeight() - fontHeight) / 2 - fontMetrics.bottom + mLabelPaddingTop - mLabelPaddingBottom;
if(isShowPercentText){//是否显示百分比
Expand Down Expand Up @@ -660,6 +667,36 @@ public String getLabelText() {
return mLabelText;
}

public boolean isShowLabel() {
return isShowLabel;
}

public boolean isShowPercentText() {
return isShowPercentText;
}

public boolean isShowTick() {
return isShowTick;
}

public boolean isTurn() {
return isTurn;
}

public boolean isCapRound() {
return isCapRound;
}

public void setShowLabel(boolean showLabel) {
isShowLabel = showLabel;
invalidate();
}

public void setShowPercentText(boolean showPercentText) {
isShowPercentText = showPercentText;
invalidate();
}

public void setLabelPaddingLeft(float labelPaddingLeft) {
this.mLabelPaddingLeft = labelPaddingLeft;
invalidate();
Expand Down
1 change: 1 addition & 0 deletions lib/src/main/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<attr name="cpvCirclePadding" format="dimension"/>
<attr name="cpvTickSplitAngle" format="integer"/>
<attr name="cpvBlockAngle" format="integer"/>
<attr name="cpvTickOffsetAngle" format="integer"/>
<attr name="cpvTurn" format="boolean"/>
<attr name="cpvCapRound" format="boolean"/>
<attr name="cpvLabelPaddingLeft" format="dimension"/>
Expand Down
39 changes: 17 additions & 22 deletions versions.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//App
def app_version = [:]
app_version.versionCode = 5
app_version.versionName = "1.1.2"
app_version.versionCode = 6
app_version.versionName = "1.1.3"
ext.app_version = app_version

//build version
Expand All @@ -17,27 +17,22 @@ ext.deps = [:]
// App dependencies
def versions = [:]
//support
versions.supportLibrary = "1.0.0+"
versions.constraintLayout = "1.1.3"
versions.appcompat = "1.1.0"
versions.constraintlayout = "1.1.3"

versions.mavenPublish = '0.13.0'
versions.gradle = '3.6.1'
//test
versions.junit = "4.12"
versions.runner = "1.1.2"
versions.espresso = "3.2.0"


//support
def support = [:]
support.design = "com.google.android.material:material:$versions.supportLibrary"
support.appcompat = "androidx.appcompat:appcompat:$versions.supportLibrary"
support.constraintlayout = "androidx.constraintlayout:constraintlayout:$versions.constraintLayout"
deps.support = support

//test
def test = [:]
test.junit = "junit:junit:$versions.junit"
test.runner = "androidx.test:runner:$versions.runner"
test.espresso = "androidx.test.espresso:espresso-core:$versions.espresso"
deps.test = test
versions.junit = "1.1.1"
versions.runner = "1.2.0"
versions.espressoCore = "3.2.0"
ext.versions = versions

def deps = [:]
deps.junit = "androidx.test.ext:junit:$versions.junit"
deps.runner = "androidx.test:runner:$versions.runner"
deps.espresso = "androidx.test.espresso:espresso-core:$versions.espressoCore"
deps.appcompat = "androidx.appcompat:appcompat:$versions.appcompat"
deps.constraintlayout = "androidx.constraintlayout:constraintlayout:$versions.constraintlayout"

ext.deps = deps

0 comments on commit 859f68c

Please sign in to comment.