Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android基礎教程之——Android ProgressBar的使用

Android基礎教程之——Android ProgressBar的使用

編輯:Android開發實例

大家好,今天給大家講一下Android中ProgressBar的使用,這個控件在開發中還是經常用到的,比如用戶浏覽網頁的時候,中間肯定有個傳輸過程,所以用進度條讓用戶耐心等待。再比如我在Android Market下載應用,它也會有進度條顯示下載進度。我為什麼要舉這兩個例子呢,是因為它們分別是圓形進度條和長形進度條的代表。如下面兩張圖:

圖1.UC浏覽網頁圓形進度條效果。

圖2.Google Market應用下載長形進度條效果.

下面我們看一下兩都皆有之的Android自帶的浏覽器的效果圖如下:

為了讓大家更容易理解我將簡單寫一個Demo,大家可以按照我的步驟一步一步來。

第一步:新建一個Android工程命名為ProgressBarDemo.

第二步:修改main.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.      <TextView   
  8.          android:layout_width="fill_parent"    
  9.          android:layout_height="wrap_content"   
  10.          android:text="Welcome to Mr Wei's blog" />    
  11.      <ProgressBar   
  12.          android:id="@+id/rectangleProgressBar"    
  13.          style="?android:attr/progressBarStyleHorizontal" mce_style="?android:attr/progressBarStyleHorizontal"     
  14.          android:layout_width="fill_parent"   
  15.          android:layout_height="wrap_content" 
  16.          android:visibility="gone" 
  17.          /> 
  18.      <ProgressBar   
  19.          android:id="@+id/circleProgressBar"    
  20.          style="?android:attr/progressBarStyleLarge" mce_style="?android:attr/progressBarStyleLarge" 
  21.          android:layout_width="wrap_content"   
  22.          android:layout_height="wrap_content" 
  23.          android:visibility="gone"   
  24.          /> 
  25.         
  26.      <Button android:id="@+id/button"   
  27.              android:text="Show ProgressBar"    
  28.              android:layout_width="wrap_content"   
  29.              android:layout_height="wrap_content" 
  30.              /> 
  31.  </LinearLayout>  

第三步:修改ProgressBarDemo.java代碼如下(如果這裡有對Handler和Message不明白的地方可以去Android高手進階教程(九) 看下這個教程):

 

  1. package com.tutor.progress;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.os.Handler;  
  5. import android.os.Message;  
  6. import android.view.View;  
  7. import android.widget.Button;  
  8. import android.widget.ProgressBar;  
  9. public class ProgressBarDemo extends Activity {  
  10.       
  11.     private ProgressBar rectangleProgressBar,circleProgressBar;  
  12.     private Button mButton;  
  13.       
  14.     protected static final int STOP = 0x10000;  
  15.     protected static final int NEXT = 0x10001;  
  16.     private int iCount = 0;  
  17.       
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.main);  
  21.         //findView By id  
  22.         rectangleProgressBar = (ProgressBar)findViewById(R.id.rectangleProgressBar);  
  23.         circleProgressBar = (ProgressBar)findViewById(R.id.circleProgressBar);  
  24.         mButton = (Button)findViewById(R.id.button);  
  25.           
  26.         rectangleProgressBar.setIndeterminate(false);  
  27.         circleProgressBar.setIndeterminate(false);  
  28.           
  29.         mButton.setOnClickListener(new Button.OnClickListener() {  
  30.               
  31.             public void onClick(View v) {  
  32.                   
  33.                 rectangleProgressBar.setVisibility(View.VISIBLE);  
  34.                 circleProgressBar.setVisibility(View.VISIBLE);  
  35.                   
  36.                 rectangleProgressBar.setMax(100);  
  37.                 rectangleProgressBar.setProgress(0);  
  38.                 circleProgressBar.setProgress(0);  
  39.                   
  40.                 //創建一個線程,每秒步長為5增加,到100%時停止  
  41.                 Thread mThread = new Thread(new Runnable() {  
  42.                       
  43.                     public void run() {  
  44.                           
  45.                         for(int i=0 ; i < 20; i++){  
  46.                             try{  
  47.                                 iCount = (i + 1) * 5;  
  48.                                 Thread.sleep(1000);  
  49.                                 if(i == 19){  
  50.                                     Message msg = new Message();  
  51.                                     msg.what = STOP;  
  52.                                     mHandler.sendMessage(msg);  
  53.                                     break;  
  54.                                 }else{  
  55.                                     Message msg = new Message();  
  56.                                     msg.what = NEXT;  
  57.                                     mHandler.sendMessage(msg);  
  58.                                 }  
  59.                             }catch (Exception e) {  
  60.                                 e.printStackTrace();  
  61.                             }  
  62.                         }  
  63.                           
  64.                     }  
  65.                 });  
  66.                 mThread.start();  
  67.             }  
  68.         });  
  69.     }  
  70.       
  71.     //定義一個Handler  
  72.     private Handler mHandler = new Handler(){  
  73.         public void handleMessage(Message msg){  
  74.             switch (msg.what) {  
  75.             case STOP:  
  76.                 rectangleProgressBar.setVisibility(View.GONE);  
  77.                 circleProgressBar.setVisibility(View.GONE);  
  78.                 Thread.currentThread().interrupt();  
  79.                 break;  
  80.             case NEXT:  
  81.                 if(!Thread.currentThread().isInterrupted()){  
  82.                     rectangleProgressBar.setProgress(iCount);  
  83.                     circleProgressBar.setProgress(iCount);  
  84.                 }  
  85.                 break;  
  86.             }  
  87.         }  
  88.     };  

第四步:運行上述工程,效果如下圖:

OK,今天就先到這裡,希望對大家有所幫助,大家多留言。謝謝大家 ~

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved