Skip to content

Repository files navigation

PictureProgressBar

English README please click!

欢迎 Star or Fork!有什么意见和建议可以在Issue上提出。

简介

这是一个可在进度条的当前进度点设置图片的ProgressBar,并且可以设置几种动画模式,效果如图:

使用

Gradle

 compile 'com.yanzhikaijky:PictureProgressbar:1.2.0'

属性

属性名称意义类型默认值
backGroundColor进度条背景颜色color#888888
barColor进度条颜色color#ff0000
drawable进度条图片drawabledrawablenull
halfDrawableWidthdrawable宽度dimension0
halfDrawableHeightdrawable高度dimension0
drawableHeightOffsetdrawable高度偏移量dimension0
isRound进度条是否为圆角booleantrue
roundX进度条圆角X半径dimension20px
roundY进度条圆角Y半径dimension20px
progress初始进度int0
max最大进度int0
isSetBar是否自定义进度条高度booleanflase
progressHeight进度条高度dimension100px
progressHeightOffset进度条高度偏移量dimension
refreshTime刷新时间int100
animMode动画模式eunmANIM_NULL
rotateRate旋转角度/每次刷新int10
rotateDegree旋转初始角度int0
scaleMax缩放最大倍数float1.5f
scaleMin缩放最小倍数float0.5f
scaleRate缩放倍数/每次刷新float0.1
gradientStartColor进度条渐变色开始颜色color#ff0000
gradientEndColor进度条渐变色结束颜色color#ffff00
backgroundDrawable进度条背景图片reference
barDrawable进度条图片reference

注意:backgroundDrawable和barDrawable(版本1.2.0新增),的引用只能是图片,不然会报错(对其他类型的支持后续开发中)。用法类似于官方ProgressBar的图片背景,设置一个图片之后会自动进行宽高调整后平铺:

最后得到这样的结果:

对应的animMode模式有:

animMode模式意义使用
ANIM_NULL无动画模式不需要设置Drawable
ANIM_ROTATE旋转动画模式需要设置Drawable,最好设置rotateRate、rotateDegree属性,使用时注意动画范围会不会超出View的实际范围,超出部分不会显示
ANIM_SCALE缩放动画模式需要设置Drawable,最好设置scaleMax、scaleMin,scaleRate属性,使用时注意动画范围会不会超出View的实际范围,超出部分不会显示
ANIM_ROTATE_SCALE旋转加缩放动画模式需要设置Drawable,上两个模式的属性,使用时注意动画范围会不会超出View的实际范围,超出部分不会显示
ANIM_FRAME帧动画模式不需要设置Drawable,需要设置drawableIds数组

除了上面属性的set、get方法,还有:

 //设置动画开关
public void setAnimRun(boolean isAnimRun)
//设置帧动画时要传入的图片ID数组
public void setDrawableIds(int[] drawableIds)
//设置图片
public void setPicture(int id)
//设置颜色渐变器
public void setLinearGradient(LinearGradient linearGradient)
//设置进度监听器
public void setOnProgressChangeListener(OnProgressChangeListener onProgressChangeListener)
//进度监听器
public interface OnProgressChangeListener {
//进度改变时的回调
public void onOnProgressChange(int progress);
//进度完成时的回答
public void onOnProgressFinish();
}
//以下为v1.2.0新增:
//设置进度条背景图片
public void setBarDrawableId(int id) //设置进度条图片
public void setBarBackgroundDrawableId(int id) 

开源协议

PictureProgressBar遵循Apache 2.0开源协议。

版本更新

  • version 1.1.1:2017/07/07修复bug: 加入了progressPercentage属性来表示进度条进度比例,修改了setProgress()内容,在里面加入
progressPercentage = progress/max;

防止在输入较大int数值的时候,计算进度操作导致int类型溢出的情况,如下载场景下的进度数值。

  • version 1.1.2:2017/09/07修复bug: progress/max得到0的结果,醉了过了两个月才发现。。。

  • version 1.2.0:2017/09/11更新:

    • 1.修复非圆角进度条宽度设置失效问题。
    • 2.进度条左方预留空间给图片,不会出现进度0%但是还是显示有加载了部分进度的情况。
    • 3.新增进度条的图片设置,类似官方ProgressBar的图片平铺设置功能。

关于作者

id:炎之铠

炎之铠的邮箱:yanzhikai_yjk@qq.com

CSDN:http://blog.csdn.net/totond

PictureProgressBar全解析blog:

http://blog.csdn.net/totond/article/details/72359888

http://www.jianshu.com/p/009cb305ec5f

About

a ProgressBar with Picture and Animation

Topics

Resources

Stars

106 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages