Android API 25 (Android 7.1.1)
ProgressBar
public class ProgressBar
extends View
Added in API level 1
java.lang.Object
↳android.widget.ProgressBar
已知直接子类:
AbsSeekBar
ContentLoadingProgressBar
【概述】
ProgressBar是界面用于与用户交互的一个组件,用来提升用户友好度,通常用于向用户展示某个耗时操作时,用于展示完成的百分比,不至于让用户觉得程序失去了响应。
在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。
以下代码示例展示了如何使用一个进度条,在一个工作线程中更新,然后把进度通知给用户:
public class MyActivity extends Activity {
private static final int PROGRESS = 0x1;
private ProgressBar mProgress;
private int mProgressStatus = 0;
private Handler mHandler = new Handler();
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.progressbar_activity);
mProgress = (ProgressBar) findViewById(R.id.progress_bar);
// Start lengthy operation in a background thread
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < 100) {
mProgressStatus = doWork();
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
}
}).start();
}
}
添加进度条的布局文件,你可以使用<ProgressBar>元素。默认情况下,进度条是一个旋转的轮子(一个不确定的指标)。应用Widget.ProgressBar.Horizontal风格可以把进度条改成水平方向,像这样:
<ProgressBar style="@android:style/Widget.ProgressBar.Horizontal" .../>
style=”?android:attr/ProgressBarStyleHorizontal”
如果你将使用进度条显示真正的进度,你应该使用水平进度条。然后使用incrementProgressBy()或setProgress()来增加进度值。默认情况下,当进度值达到100就满了。如果有必要,你可以使用android:max来调整最大值。
另一个常用的风格是Widget.ProgressBar.Small。当等待加载内容时显示了一个小的旋转轮子。
系统提供的进度条风格有:
·Widget.ProgressBar.Horizontal 水平进度条
·Widget.ProgressBar.Small 小环形进度条
·Widget.ProgressBar.Large 大环形进度条
·Widget.ProgressBar.Inverse 环形逆转进度条
·Widget.ProgressBar.Small.Inverse 小环形逆转进度条
·Widget.ProgressBar.Large.Inverse 大环形逆转进度条
·Widget.ProgressBar.Small.Title 标题型小环形进度条
【XML属性】
android: animationResolution
API 11-16
属性说明:设置进度条动画的超时时间。帧之间的动画超时时间。单位:毫秒。
必须是整型值(integer),如:100。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局资源符号是animationResolution。
API 16被弃用。Framework不再使用。
android: indeterminate
API 1
属性说明:设置是否使用不确定进度模式。在不确定进度模式下,进度条动画无限循环。(即没有确切的进度值。)
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源