Android ApiDemos示例解析(182):Views->Progress Bar->1. Incremental
进程条ProgressBar可以用来显示某个操作(比如下载文件)当前的进度,应用可以根据操作的进度改变进程条的长度。Android 中的进程条还支持一个辅助的进度条来显示莫个中间操作的进度,比如说解压一个文件包,主进度条可以显示整个文件包的解压进度,辅助进度条可以显示当前正在解压的文件的进度。
对于一些无法事先知道操作所需时间,可以将ProgressBar 设置成”indeterminate” 模式,此时进度条可以显示一个不断转动的滚轮或是一个水平的进度条。
在Layout中定义ProgressBar,如本例:
[html]
<ProgressBar android:id=”@+id/progress_horizontal”
style=”?android:attr/progressBarStyleHorizontal”
android:layout_width=”200dip”
android:layout_height=”wrap_content”
android:max=”100″
android:progress=”50″
android:secondaryProgress=”75″ />
<ProgressBar android:id=”@+id/progress_horizontal”
style=”?android:attr/progressBarStyleHorizontal”
android:layout_width=”200dip”
android:layout_height=”wrap_content”
android:max=”100″
android:progress=”50″
android:secondaryProgress=”75″ />
ProgressBar 缺省显示为 Spinning Wheel (时间未定模式),如果需使用水平进度条,将其模式设为progressBarStyleHorizontal。(或style=”@android:style/Widget.ProgressBar.Horizontal) 如果你需要明确指定进度条当前进度值,必须使用水平进度条风格。
另外一个常见的风格为Widget.ProgressBar.Small,表现为一个小号的旋转滚轮,应用中可以用来表示一个延时的操作(如下载)
ProgressBar 支持的风格有如下几种:
Widget.ProgressBar.Horizontal
Widget.ProgressBar.Small
Widget.ProgressBar.Large
Widget.ProgressBar.Inverse
Widget.ProgressBar.Small.Inverse
Widget.ProgressBar.Large.Inverse
如果使用attr 则可以使用如下attr:
progressBarStyle
progressBarStyleHorizontal
progressBarStyleInverse
progressBarStyleLarge
progressBarStyleLargeInverse
progressBarStyleSmall
progressBarStyleSmallInverse
progressBarStyleSmallTitle
其中Inverse 表示以反色显示进度条。
本例介绍了ProgressBar 的基本用法,可以通过按钮来修改进度条的进度值(同时使用了两个进度条:主进度条和辅助进度条)。
要注意的是Activity 本身也提供了几个和进度条相关的方法(显示在标题栏中),可以控制标题栏中显示的进度条显示。
setProgress(int progress)
setProgressBarIndeterminate(boolean indeterminate)
setProgressBarIndeterminateVisibility(boolean visible)
setProgressBarVisibility(boolean visible)
而对于ProgressBar 本身则是通过incrementProgressBy 和 incrementSecondaryProgressBy 来修改进度条当前显示的值。
[java]
final ProgressBar progressHorizontal
= (ProgressBar) findViewById(R.id.progress_horizontal);
setProgress(progressHorizontal.getProgress() * 100);
setSecondaryProgress(progressHorizontal.getSecondaryProgress()
* 100);
...
progressHorizontal.incrementProgressBy(-1);
...
progressHorizontal.incrementSecondaryProgressBy(-1);
final ProgressBar progressHorizontal www.zzzyk.com
= (ProgressBar) findViewById(R.id.progress_horizontal);
setProgress(progressHorizontal.getProgress() * 100);
setSecondaryProgress(progressHorizontal.getSecondaryProgress()
* 100);
...
progressHorizontal.incrementProgressBy(-1);
...
progressHorizontal.incrementSecondaryProgressBy(-1);
补充:移动开发 , Android ,