前言#
最近群里有人说他们在项目中有实现圆形进度的需求,但是对于自定义View的技能比较弱。
私下我对他讲解了一番,可是,他竟然让我帮他写。
开始我是拒绝的,因为不是你说让我写我就写,因为我写出来你可能还是不会。可是他跟我讲,写完奖励我十包辣条,上传到简书还会有打赏。我酝酿之后也知道他很有诚意,没有加特技,诚意duang~duang~duang~。 我上传到简书,打赏duang~duang~duang~ 观众用完之后,自定义View和属性动画 duang~duang~duang~ 后来我索性直接做成一个库,直接一句代码即可使用compile 'com.wanlili:circleprogressview:1.0.1'
虽然我今天心情很不好,但还是即兴创作这首歌送给大家~(哭)
一句话#
一个简约纯粹的圆形进度条。(API>=19)
上gif#
circleProgressView.gif
使用#
你只需要传入你想要的参数即可。例如
如果你想要一些自定义的样式(有以下三个自定义属性)
<com.wanli.com.circleprogressview.CircleProgressView
android:id="@+id/circle"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
app:c_colorCircle="@color/colorPrimary" //圆形的颜色
app:c_colorProgress="@color/colorAccent" //进度的颜色
app:c_strokeWidth="20.0" /> //圆形的宽度
如果你想在启动之前设置一些默认值
circle = (CircleProgressView) findViewById(R.id.circle);
circle.setDurationsecondscurrent(1f); //设置当前进度
circle.setDurationSecondsMax(10f); //设置最大进度
circle.setTotalSeconds(1000); //设置一共需要耗时多少毫秒。不设置默认从1到10为每隔一秒加1
启动
circle.start(); //启动
如果你还想在启动后实时得到进度的数值,那么你启动的时候传一个接口回调参数即可
circle.start(new CircleProgressView.OnProgressListener() {
@Override
public void onProgressListener(float progress) { //实时进度的数值
text1.setText(String.valueOf(progress));
}
@Override
public void onProgressEnd(float progress) { //结束的数值
text1.setText(String.valueOf(progress));
}
});
也许你想在其它地方得到进度数值
circle.getDurationsecondscurrent()
暂停,恢复,判断是否结束呢
circle.pause();
circle.resume();
circle.isEnd()
也许你还想看看源码,或者直接来个例子
https://github.com/WanLiLi/CircleProgressView 记得Star
也许你还好奇上一篇讲了什么?
http://www.jianshu.com/p/f160b787231e Android折叠伸缩效果的实现
基于上一篇的文章中的gif,有一个好眼力的简友[Android里的海贼王]就询问从A跳转到B界面中的图片动画是怎么实现的,多个元素一起执行动画又怎么实现。关于这个问题,不知道有多少人需要了解?
结束#
感谢打赏过以及关注的简友,是你们让我在心情不好的时候还能坚持写作。
网友评论