圆环进度条
如果不给ProgressBar
添加style
,其创建之初就是一个环形的进度条
1 2 3
| <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content"/>
|
横向进度条
添加一个style
属性
1 2 3 4 5 6
| <ProgressBar android:max="100" android:progress="10" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"/>
|
常用属性
- max: 进度条的最大值
- progress: 进度条已完成进度值
- indeterminate: 如果设置成true,则进度条不精确显示进度
在程序中,可以通过设置其progress
值来改变进度条进度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| int progressValue = 100;
ProgressBar progressBar = findViewById(R.id.progress);
Handler handler = new Handler(Looper.myLooper()) { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (msg.what == 0) { progressBar.setProgress(msg.arg1); } } };
new Thread(new Runnable() { @Override public void run() { for (int i = 1; i <= progressValue; i++) { Message message = Message.obtain(); message.what = 0; message.arg1 = i; handler.sendMessage(message);
try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start();
|
效果如下
进度不明确的横向进度条
在横向进度条的基础上添加一个indeterminate
属性,并设为true
1 2 3 4 5
| <ProgressBar android:indeterminate="true" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"/>
|