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);
}
posted @ 2023-11-11 22:10  乌清远wqy  阅读(123)  评论(0)    收藏  举报