android ProgressBar样式
实现进度条由浅黄(#ffff33)到深黄色(#ff6600)的渐变样式。
与进度条自动从0加载到99,进度条每次加1
android:max
:进度条的最大值。android:progressDrawable
:设置轨道对应的Drawable
对象。- style="@android:style/Widget.ProgressBar.Horizontal" 设置水平进度条
ProgressBar进度条
<ProgressBar
android:id="@+id/St_Bar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="40dp"
android:max="100"
android:progressDrawable="@drawable/my_pb" />
my_pb.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<color android:color="#ffffff" />
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient
android:startColor="#ffff33"
android:endColor="#ff6600"/>
</shape>
</clip>
</item>
</layer-list>
其中gradient为渐变色设置
<gradient android:startColor="#ffff33"
android:endColor="#ff6600"/>
@android:id/background 为进度条背景颜色id
<item android:id="@android:id/background"/>
@android:id/progress 为进度条本身的颜色设置
<item android:id="@android:id/progress"/>
进度条自动从0加载到99,进度条每次加1
应用了Handler 详细
ProgressBar St_Bar;
private final Handler handler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
St_Bar.incrementProgressBy(1);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
St_Bar = findViewById(R.id.St_Bar);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(0);
}
},0,50);
}