首先来看效果图:
需求拆解分析:
1.首先我们需要实现一个自右向左的progressbar。
2.需要实现progressbar的滚动过程动画。
3.需要左右两个progressbar同时滚动,在中间相遇,此时进度正好和为100.
各个击破:
关于第一点,最开始,我的想法是自定义view,按照progressbar的源码去改改,尝试将方向改成自右向左。 后来发现progressbar的interdrawable属性是支持自右向左的, 只需要clip的时候设置gravity即可,那么这就很好办了。
第二点,让progress动起来。我想到了好几种方案:
- 可以利用属性动画
- 也可以不停的ondraw重绘,然后更改progress达到效果
- 这里我用了timerTask定时去更新进度达到了效果
读者有兴趣,可以试试其他的方案。
1, 2点都解决了,那么3就很容易了,只需要控制两个进度条的速度变化即可。
最后,代码托管在了github上,欢迎Star, fork.
有任何问题可以加群或email找我
[Android提高班]
QQ群:123390596
专注干活 分享交流