progressbar 自定义(进度)颜色(timertaskl定时器模拟)
2017-06-28 16:18
435 查看
先上效果图如下:
1.提供我们progress所在的布局文件
2.整个进度条有三种情况:0~10 显示蓝色,11~50显示红色,51~100显示橙色(可以视为我们手机电量提示格子一样,满电绿色,没电了就变成红色了)
提供三种情况下的progressbar的drawable布局中的一种(因为三者的布局其实是一样的,就是改变下所需显示的颜色)
3.在1中的控件progress 给 它设置我们自己写的drawable资源文件,属性为:progressDrawable 因为默认上来是0,所以给设置了个蓝色进度条以及默认的最大进度为100。
4.此时设置完默认进度条颜色后,我们需要对其进度动态的进度条色值改变(存在如下三种情况)
pro_10,pro_10_50.pro_50_100,分别为进度条颜色(蓝,红,橙),你也可以根据不同的判断条件添加不同色值的drawable资源文件,我这里是三个条件三种色值。
这里的msg.what其实就是进度值(满额100,msg.what是当前的进度值)
5.最后通过定时器来模拟进度条改变带来的不同进度下的不同色值。
add_or_reduce :一个增加进度还是减少进度的判断标识;
基本的使用操作都在上面的,个别地方还需要具体解释的请留言~
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>
2.整个进度条有三种情况:0~10 显示蓝色,11~50显示红色,51~100显示橙色(可以视为我们手机电量提示格子一样,满电绿色,没电了就变成红色了)
提供三种情况下的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>
3.在1中的控件progress 给 它设置我们自己写的drawable资源文件,属性为:progressDrawable 因为默认上来是0,所以给设置了个蓝色进度条以及默认的最大进度为100。
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 :一个增加进度还是减少进度的判断标识;
基本的使用操作都在上面的,个别地方还需要具体解释的请留言~
相关文章推荐
- android progressBar 自定义 进度颜色
- 自定义圆形进度ProgressBar的颜色和图片
- progressbar自定义图片做背景做进度条颜色
- Android编程实现自定义ProgressBar样式示例(背景色及一级、二级进度条颜色)
- 写一个自定义进度颜色和圆形转动的ProgressBar(详细介绍)
- Android:自定义ProgressBar的样式(背景色/一级、二级进度条颜色)
- Android:自定义ProgressBar的样式(背景色/一级、二级进度条颜色)
- Android中自定义SeekBar的背景颜色,进度条颜色,以及滑块的图片
- Android之自定义可显示分段颜色的progressBar
- 自定义圆形带颜色的加载进度条
- 自定义圆形进度条,模拟开屏广告倒计时
- Android编程自定义进度条颜色的方法详解
- ProgressBar 实现自定义显示进度值
- 使用颜色渐变图片自定义条形ProgressBar
- 自定义progressBar---酷炫进度条
- 自定义水平ProgressBar,背景和读条的颜色都可随意修改
- 自定义 ProgressBar 进度条 自定义样式
- 自定义圆环进度条,可改变外层圆环颜色,重置与开始
- android的progressbar修改背景颜色跟进度条颜色
- Android笔记: ProgressBar 圆形进度条颜色的设置