progressbar 自定义(进度)颜色(timertaskl定时器模拟)
来源:互联网 发布:常用视频制作软件 编辑:程序博客网 时间:2024/06/11 08:01
先上效果图如下:
1.提供我们progress所在的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ProgressBar android:id="@+id/pb_pb" android:layout_width="match_parent" android:layout_height="30px" android:layout_marginLeft="20px" android:layout_marginRight="20px" android:max="100" android:layout_centerInParent="true" android:progressDrawable="@drawable/pro_10" style="@style/Widget.AppCompat.ProgressBar.Horizontal" /></RelativeLayout>
提供三种情况下的progressbar的drawable布局中的一种(因为三者的布局其实是一样的,就是改变下所需显示的颜色)
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <corners android:radius="20px"/> <solid android:color="#000"/> </shape> </item> <item android:id="@android:id/progress"> <clip> <scale android:scaleWidth="100%"> <shape> <corners android:radius="20px"/> <solid android:color="#2319dc"/> </shape> </scale> </clip> </item></layer-list>
4.此时设置完默认进度条颜色后,我们需要对其进度动态的进度条色值改变(存在如下三种情况)
public Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what>0&&msg.what<=10){ pb_pb.setProgressDrawable(getResources().getDrawable(R.drawable.pro_10)); }else if (msg.what>10&&msg.what<=50){ pb_pb.setProgressDrawable(getResources().getDrawable(R.drawable.pro_10_50)); }else if (msg.what>50&&msg.what<=100){ pb_pb.setProgressDrawable(getResources().getDrawable(R.drawable.pro_50_100)); } pb_pb.setProgress(msg.what); }};
pro_10,pro_10_50.pro_50_100,分别为进度条颜色(蓝,红,橙),你也可以根据不同的判断条件添加不同色值的drawable资源文件,我这里是三个条件三种色值。
这里的msg.what其实就是进度值(满额100,msg.what是当前的进度值)
5.最后通过定时器来模拟进度条改变带来的不同进度下的不同色值。
timer=new Timer();timerTask =new TimerTask() { @Override public void run() { if(add_or_reduce){ if(count>=0&&count<100){ count++; }else{ add_or_reduce=false; count--; } }else{ if(count>0&&count<=100){ count--; }else{ add_or_reduce=true; count++; } } handler.sendEmptyMessage(count); }};timer.schedule(timerTask,30,30);add_or_reduce :一个增加进度还是减少进度的判断标识;
基本的使用操作都在上面的,个别地方还需要具体解释的请留言~
阅读全文
1 0
- progressbar 自定义(进度)颜色(timertaskl定时器模拟)
- android progressBar 自定义 进度颜色
- 自定义ProgressBar(背景,前景,进度图片)
- 自定义圆形progressbar(包含进度动画效果)
- 自定义圆形进度ProgressBar的颜色和图片
- android--进度框(ProgressBar)
- 自定义ProgressBar(包括自定义图片,带进度的圆形进度条、长方形进度条)
- 在asp.net中使用JQuery ProgressBar显示进度(模拟)
- 自定义ProgressBar的进度色彩
- 自定义圆形progressbar颜色
- 自定义ProgressBar的颜色
- 自定义ProgressBar颜色样式
- 自定义progressbar颜色
- 自定义progressbar进度条颜色
- 自定义progressbar进度条颜色
- 自定义view圆环跟随progressbar进度改变中心的texview(百分比)
- WPF ProgressBar显示进度(一)
- WPF ProgressBar显示进度(二)
- 动态手势识别--操作数据库(一)
- Apache和Tomcat的区别
- Scala json转map,map转json
- 安卓6.0 文件存储权限管理
- AM3353平台上的Linux 3.2.0 IIO子文件系统框架的驱动
- progressbar 自定义(进度)颜色(timertaskl定时器模拟)
- 根据图片后缀显示图片gif png
- jvisualvm 连接 jstatd监控jvm
- 关于Flash和JS相互调用的例子
- html5标签应用
- Java知识:我对面向对象面向过程的理解&类和对象的关系
- Python入门 装饰器的使用
- poj 1915
- Openstack之旅--win7下安装Ubuntu