属性 | 作用 |
---|---|
progress |
当前进度 |
maxProgress |
最大进度 |
progressWidth |
进度条宽度(dp) |
mainProgressColor |
主进度条颜色 |
childProgressColor |
子进度条颜色(随进度增加而减少的那个进度条) |
isShowChildProgress |
是否显示子进度条 |
progressRepelAngle |
子进度条和主进度条之间的排斥角度 |
pathColor |
进度条轨道颜色 |
pathPadding |
轨道内边距距离(dp) |
isClockwise |
是否为顺时针方向 |
方法 | 作用 |
---|---|
setProgress setProgress |
设置当前进度 |
setMaxProgress getMaxProgress |
设置最大进度 |
setProgressSmooth(startProgress: Int, endProgress: Int, during: Long) |
从进度a变化到进度b(自带动画) |
- 1.将PopCircleProgress拷贝到你的项目中
- 2.将attrs的内容拷贝到你的项目res/values/attrs.xml文件中(没有的话新建一个)
- 3.在你的布局中使用:
<com.tomato.amelia.customviewstudy.view.PopCircleProgress
android:id="@+id/circle_progress"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="20dp"
app:childProgressColor="#81B29A"
app:isShowChildProgress="true"
app:mainProgressColor="#E07A5F"
app:maxProgress="1000"
app:pathColor="#3D405B"
app:pathPadding="5dp"
app:progress="100"
app:progressRepelAngle="3"
app:progressWidth="20dp" />
跑个动画:
fun playProgressAnim(progressBar:PopCircleProgress){
val anim = ValueAnimator.ofInt(0, progressBar.getMaxProgress())
anim.interpolator = LinearInterpolator()
anim.addUpdateListener {
val value = it.animatedValue as Int
progressBar.setProgress(value)
}
anim.duration = 5 * 1000L
anim.repeatCount = ValueAnimator.INFINITE
anim.start()
}