KeepCountdownView 【Android仿Keep运动休息倒计时圆形控件】仿Keep运动休息倒计时控件
源码 控件本身非常非常简单,唯一难点在于倒计时期间动态增减时长,如果说动态增减时长是瞬间完成的,倒也没什么难度,但是如果是需要花一定时间做动画的话(见效果图),考虑的逻辑就变多了,这也是我写这个的目的,对应源码中就是plus
这个方法。
https://github.com/CCY0122/KeepCountdownView
效果
使用方法 xml:
code:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.keep_act);
ButterKnife.bind(this);
//倒计时监听
keep1.setCountdownListener(new KeepCountdownView.CountdownListener() {
@Override
public void onStart() {
}@Override
public void onEnd() {}
});
}@OnClick(R.id.b1)
public void b1(View v) {
keep1.plus(5);
//增加5s}@OnClick(R.id.b2)
public void b2() {
keep1.post(new Runnable() {
@Override
public void run() {
keep1.startCountDown();
//开始倒计时
}
});
}@OnClick(R.id.b4)
public void b4() {
keep1.reset();
//重置
}
可选属性
描述 | xml对应属性 | 默认值 |
---|---|---|
圆弧颜色 | arcColor | 0xff33cc66 |
数字颜色 | numColor | 0xff33cc66 |
圆弧厚度 | arcStrokeWidth | 5dp |
数字大小 | numTextSize | 70sp |
倒计时开始角度 | initDegree | 270° |
倒计时时间 | maxNum | 20 |
是否顺时针倒计时 | isCW | false |
圆半径 | radius | 90dp |
动态增加/减少时间时圆弧增长动画时长 | plusNumAnimDuration | 0.8s |
推荐阅读
- Android自定义View
- ObjectAnimator使用
- Android自定义动画--放射菜单
- #|Android自定义View(带百分比的圆形进度条)
- Android动画应用---自定义属性动画