【Android 开发教程】ProgressBar
来源:互联网 发布:透过现象看本质 知乎 编辑:程序博客网 时间:2024/05/22 03:24
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/当执行某些正在处理的任务时,ProgressBar提供了一个可视化的反馈。例如,你在从web服务器下载数据,然后需要更新下载的状态。在这种情况下,ProgressBar就是一个很好的选择。下面的例子,展示如何去使用ProgressBar。
1. 创建一个工程,BasicViews2。
2. main.xml中的代码。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <ProgressBar android:id="@+id/progressbar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- </LinearLayout>
- public class BasicViews2Activity extends Activity {
- static int progress;
- ProgressBar progressBar;
- int progressStatus = 0;
- Handler handler = new Handler();
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- progress = 0;
- progressBar = (ProgressBar) findViewById(R.id.progressbar);
- //---do some work in background thread---
- new Thread(new Runnable()
- {
- public void run()
- {
- //?do some work here?
- while (progressStatus < 10)
- {
- progressStatus = doSomeWork();
- }
- //---hides the progress bar---
- handler.post(new Runnable()
- {
- public void run()
- {
- //---0 - VISIBLE; 4 - INVISIBLE; 8 - GONE---
- progressBar.setVisibility(View.GONE);
- }
- });
- }
- //---do some long running work here---
- private int doSomeWork()
- {
- try {
- //---simulate doing some work---
- Thread.sleep(500);
- } catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- return ++progress;
- }
- }).start();
- }
- }
接下来展示如何自定义ProgressBar的样式。
1. 使用之前的例子,修改main.xml。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <ProgressBar android:id="@+id/progressbar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="@android:style/Widget.ProgressBar.Horizontal" />
- </LinearLayout>
2. Basic2Activity.java中的代码。
- public class BasicViews2Activity extends Activity {
- static int progress;
- ProgressBar progressBar;
- int progressStatus = 0;
- Handler handler = new Handler();
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- progress = 0;
- progressBar = (ProgressBar) findViewById(R.id.progressbar);
- progressBar.setMax(200);
- //---do some work in background thread---
- new Thread(new Runnable()
- {
- public void run()
- {
- //?do some work here?
- while (progressStatus < 100)
- {
- progressStatus = doSomeWork();
- //?Update the progress bar?
- handler.post(new Runnable()
- {
- public void run() {
- progressBar.setProgress(progressStatus);
- }
- });
- }
- //---hides the progress bar---
- handler.post(new Runnable()
- {
- public void run()
- {
- //---0 - VISIBLE; 4 - INVISIBLE; 8 - GONE---
- progressBar.setVisibility(View.GONE);
- }
- });
- }
- //---do some long running work here---
- private int doSomeWork()
- {
- try {
- //---simulate doing some work---
- Thread.sleep(50);
- } catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- return ++progress;
- }
- }).start();
- }
- }
4. 当ProgressBar的进度到达50%的时候,它就会消失。
附:
ProgressBar的样式列表。
- Widget.ProgressBar.Horizontal
- Widget.ProgressBar.Small
- Widget.ProgressBar.Large
- Widget.ProgressBar.Inverse
- Widget.ProgressBar.Small.Inverse
- Widget.ProgressBar.Large.Inverse
- 【Android 开发教程】ProgressBar
- ProgressBar --MarsChen Android 开发教程学习笔记
- Android开发教程(九)ProgressBar
- Android开发 自定义ProgressBar
- Android控件开发之ProgressBar
- Android开发--常用控件 ProgressBar
- Android开发之进度条-ProgressBar
- Android控件开发之ProgressBar
- android开发 自定义圆形Progressbar
- Android开发之定制ProgressBar
- android用户界面之ProgressBar教程实例汇总
- android用户界面之ProgressBar教程实例汇总
- android用户界面之ProgressBar教程实例汇总
- android用户界面之ProgressBar教程实例汇总
- Android游戏开发系统控件-ProgressBar
- android开发基础--ProgressBar/SeekBar控件
- Android开发中的控件--ProgressBar和ListView
- Android入门笔记 - 界面开发 - ProgressBar,Handler
- Java 列表框
- 将一个字符串元音字母复制到另一个字符串,并排序
- 访问WebService 出现 的错误
- Activity生命周期
- Android核心分析---Android电话系统
- 【Android 开发教程】ProgressBar
- 【Android 开发教程】AutoCompleteTextView
- 会编程的煤老板
- 还原数据库XXX 对于服务器XXX 因为数据库正在使用的问题解决
- IE6下背景图片不缓存问题或者document.execCommand("BackgroundImageCache",false,true)
- 页面前端的水有多深?再议页面开发
- 浅析Sql Server参数化查询
- 【Android 开发教程】TimePicker
- 常见设计模式的解析和实现(C++)之三-Builder模式