Android控件系列之ProgressBar&在Android中利用Handler处理多线程

分享到:

学习目的:

1、掌握在Android中如何建立ProgressBar

2、掌握ProgressBar的常用属性

3、掌握在另一个线程中控制UI线程中的控件

介绍:

进度条是一种代表程序运行状态的动态控件,一般它不受用户控制,它的目的是为了告诉用户:请您稍等!

进度条分为2种:

第一种是不能告诉用户具体进度,但能一直处于滚动状态,适合未知结束时间的场合。

第二种时能告诉用户具体进度的,到达100%时,需要处理完所有后台任务。

您需要明白一下几点:

1、进度条只是反应进度的控件,真正的后台处理应该在另一个线程中进行。

2、反应实际进度的进度条的设计需要尽可能准确和平稳。

3、当进度条到达100%时,任务必须完成,否则用户会认为他们受到了欺骗。

样例实现了2种进度条,您会掌握如何在另一个线程中控制它,通常下载大量数据又不希望界面假死的情况下,您务必这么做:

第一个不停旋转的圆形进度条只适合不清楚结束时间,或者您能保证立刻会完成的操作。

第二个进度条拥有主进度和副进度,您可以根据实际需要分别为它们赋值,右边的TextView为了告诉用户实际进度的值,否则99%和100%将很难察觉出区别。

下方的按钮用来给您验证我们的确是可以一边异步下载数据一边使用界面上的其他控件的。

XML布局:

 1 <?xml version="1.0" encoding="utf-8"?>
2  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 >
7  <ProgressBar
8 android:layout_width="wrap_content"
9 android:layout_height="wrap_content"
10  ></ProgressBar>
11
12 <LinearLayout
13 android:orientation="horizontal"
14 android:layout_width="fill_parent"
15 android:layout_height="wrap_content"
16 >
17 <ProgressBar
18 style="?android:attr/progressBarStyleHorizontal"
19 android:id = "@+id/pb"
20 android:layout_width="170px"
21 android:layout_height="wrap_content"
22 ></ProgressBar>
23 <TextView
24 android:id="@+id/tvPersent"
25 android:paddingLeft="10px"
26 android:layout_width="wrap_content"
27 android:layout_height="wrap_content"
28 >
29 </TextView>
30 </LinearLayout>
31 <Button
32 android:text="点我测试界面是否假死"
33 android:layout_width="wrap_content"
34 android:layout_height="wrap_content"
35 ></Button>
36 </LinearLayout>
昵    称:
验证码:

相关文档: