Android ProgressBar进度条的使用

Android ProgressBar进度条的使用

分类: Android   141人阅读  评论(0)  收藏  举报
Android UI 布局 界面 ProgressBar

Android ProgressBar进度条的使用

进度条是UI界面中一种非常使用的组件,通常用于向用户显示某个耗时操作的完成百分比。

进度条可以动态的显示进度,这样可以避免用户感觉程序失去了响应,从而更好地提高用户界面的友好性。

ProgressBar提供如下方法来操作进度:

     setProgress(int):设置进度完成的百分比;

     incrementProgressBy(int):设置进度条的进度的增加或减少,具体取决于参数的正负;

ProgressBarDemo

界面文件:activity_main.xml

[html]  view plain copy print ?
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" >  
  6.     <TextView  
  7.         android:layout_width="match_parent"  
  8.         android:layout_height="wrap_content"  
  9.         android:text="@string/hello_world"   
  10.         />  
  11.     <ProgressBar  
  12.         android:id="@+id/bar"  
  13.         android:layout_width="match_parent"  
  14.         android:layout_height="wrap_content"  
  15.         android:max="100"  
  16.         style="@android:style/Widget.ProgressBar.Horizontal"  
  17.         />  
  18. </LinearLayout>  


Java文件:MainActivity.java

[java]  view plain copy print ?
  1. package com.zsl.progressdemo;  
  2.   
  3. import android.os.Bundle;  
  4. import android.os.Handler;  
  5. import android.os.Message;  
  6. import android.app.Activity;  
  7. import android.view.Menu;  
  8. import android.widget.ProgressBar;  
  9.   
  10. public class MainActivity extends Activity {  
  11.     private int[] randData = new int[100];  
  12.     private int index = 0;  
  13.     private int mProgressStatus = 0;  
  14.     @Override  
  15.     protected void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.activity_main);  
  18.         final ProgressBar bar = (ProgressBar)findViewById(R.id.bar);  
  19.         final Handler mHandler = new Handler() {  
  20.   
  21.             @Override  
  22.             public void handleMessage(Message msg) {  
  23.                 // TODO Auto-generated method stub  
  24.                 super.handleMessage(msg);  
  25.                   
  26.                 if(msg.what == 0x111) {  
  27.                     mProgressStatus = index;  
  28.                     //设置进度条当前的完成进度  
  29.                     bar.setProgress(mProgressStatus);  
  30.                 }  
  31.             }  
  32.               
  33.         };  
  34.           
  35.         new Thread() {  
  36.   
  37.             @Override  
  38.             public void run() {  
  39.                 // TODO Auto-generated method stub  
  40.                 super.run();  
  41.                 while(index < 100) {  
  42.                     doWork();  
  43.                     Message msg = new Message();  
  44.                     msg.what = 0x111;  
  45.                     mHandler.sendMessage(msg);  
  46.                 }  
  47.             }  
  48.               
  49.         }.start();  
  50.   
  51.     }  
  52.       
  53.     private int doWork() {  
  54.         randData[index++] = (int)(Math.random() * 100);  
  55.         //模拟一个比较耗时的操作  
  56.         try {  
  57.             Thread.sleep(100);  
  58.         } catch (InterruptedException e) {  
  59.             // TODO Auto-generated catch block  
  60.             e.printStackTrace();  
  61.         }  
  62.         return index;  
  63.     }  
  64.   
  65. }  


运行结果截图:

Android ProgressBar进度条的使用_第1张图片    Android ProgressBar进度条的使用_第2张图片


你可能感兴趣的:(android)