博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
圆形进度
阅读量:5267 次
发布时间:2019-06-14

本文共 1055 字,大约阅读时间需要 3 分钟。

两个重点:

  • 属性: ProgressBar的progressDrawable属性,实现圆形进度条
  • 进度: ProgressBar的progress添加属性动画,并且addUpdateListener来监听当前进度

代码

  • 属性progressDrawable的drawable:
circle_progress_bar.xml
  • ProgressBar布局(当然也可以把ProgressBar拆出来单独使用):
  • 给ProgressBar 添加updateListener:
objectAnimatorTop = ObjectAnimator  // 这里的animate的目标值是0,所以在updateListener我们获取到剩余的进度  // 改成progressBar.getMax(),获取到的就是正向的进度了  .ofInt(progressBarTop, "progress", 0)  .setDuration(MS_IN_FUTURE);// 保证动画的插值器是线性的 objectAnimatorTop.setInterpolator(new LinearInterpolator()); objectAnimatorTop .addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { // 通过animated多少数值,来获取当前剩余的进度或者已经完成的进度 tvCountDownTop.setText(String.format("剩余\n%d"), (int) animation.getAnimatedValue())); } }); objectAnimatorTop.start();

使用

  • 优点: 实现简单
  • 缺点: 如果设定的total progress time相对于ProgressBar max progress比较长的话,会有断断续续的感觉

GitHub地址:

设计模式:

http://www.jianshu.com/p/25b57c849663

转载于:https://www.cnblogs.com/florence1995/p/7099757.html

你可能感兴趣的文章
bzoj1854[Scoi2010] 游戏
查看>>
Android ListView及其属性
查看>>
记第一次tc
查看>>
索引的一些总结
查看>>
ajax
查看>>
[bzoj 1270][BeijingWc2008]雷涛的小猫
查看>>
DirectShow OpenCV GDI+ 图形显示格式转换
查看>>
PHP利用FTP上传文件连接超时之开启被动模式解决方法
查看>>
rdesktop的使用
查看>>
each实现原理
查看>>
requests模块
查看>>
常用的Linux命令
查看>>
POJ 3624 Charm Bracelet
查看>>
php设计模式学习之工厂模式
查看>>
Freemarker 的基础使用 (一)
查看>>
window系统如何安装Git以及Git小乌龟,实现git命令
查看>>
瀑布流
查看>>
lintcode : find peak element 寻找峰值
查看>>
杭电oj平台上的11页题目代码:hdu-page11 (2070~2079)
查看>>
selenium webdriver 通信过程
查看>>