Android 控制項之ProgressBar進度條

來源:互聯網
上載者:User

下面詳細介紹ProgressBar

一、說明

  在某些操作的進度中的可視指標,為使用者呈現操作的進度,還它有一個次要的進度條,用來顯示中間進度,如在流媒體播放的緩衝區的進度。一個進度條也可不確定其進度。在不確定模式下,進度條顯示迴圈動畫。這種模式常用於應用程式使用任務的長度是未知的。

二、XML重要屬性

    android:progressBarStyle:預設進度條樣式

    android:progressBarStyleHorizontal:水平樣式

 

三、重要方法

    getMax():返回這個進度條的範圍的上限

    getProgress():返回進度

    getSecondaryProgress():返回次要進度

    incrementProgressBy(int diff):指定增加的進度

    isIndeterminate():指示進度條是否在不確定模式下

    setIndeterminate(boolean indeterminate):設定不確定模式下

    setVisibility(int v):設定該進度條是否可視

四、重要事件

    onSizeChanged(int w, int h, int oldw, int oldh):當進度值改變時引發此事件

五、執行個體

1.布局檔案


[html] 
<?xml version="1.0" encoding="utf-8"?> 
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
 
    <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" /> 
 
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="預設進度條" />        
 
    <LinearLayout 
        android:orientation="horizontal" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 
 
        <Button android:id="@+id/decrease" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="減少" /> 
 
        <Button android:id="@+id/increase" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="增加" /> 
 
    </LinearLayout> 
 
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="自訂進度條" />        
 
    <LinearLayout 
        android:orientation="horizontal" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 
 
        <Button android:id="@+id/decrease_secondary" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="第二減少" /> 
 
        <Button android:id="@+id/increase_secondary" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="第二增加" /> 
 
    </LinearLayout> 
 
</LinearLayout> 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <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" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="預設進度條" />      

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button android:id="@+id/decrease"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="減少" />

        <Button android:id="@+id/increase"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="增加" />

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="自訂進度條" />      

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button android:id="@+id/decrease_secondary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="第二減少" />

        <Button android:id="@+id/increase_secondary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="第二增加" />

    </LinearLayout>

</LinearLayout>

 

 

2.Java代碼


[java] 
package wjq.WidgetDemo; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.ProgressBar; 
 
public class ProgressBarDemo extends Activity { 
 
 /* (non-Javadoc)
  * @see android.app.Activity#onCreate(android.os.Bundle)
  */ 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  // TODO Auto-generated method stub  
  super.onCreate(savedInstanceState); 
   
   requestWindowFeature(Window.FEATURE_PROGRESS); 
         setContentView(R.layout.probarpage); 
         setProgressBarVisibility(true); 
          
         final ProgressBar progressHorizontal = (ProgressBar) findViewById(R.id.progress_horizontal); 
         setProgress(progressHorizontal.getProgress() * 100); 
         setSecondaryProgress(progressHorizontal.getSecondaryProgress() * 100); 
          
         Button button = (Button) findViewById(R.id.increase); 
         button.setOnClickListener(new Button.OnClickListener() { 
             public void onClick(View v) { 
                 progressHorizontal.incrementProgressBy(1); 
                 // Title progress is in range 0..10000  
                 setProgress(100 * progressHorizontal.getProgress()); 
             } 
         }); 
 
         button = (Button) findViewById(R.id.decrease); 
         button.setOnClickListener(new Button.OnClickListener() { 
             public void onClick(View v) { 
                 progressHorizontal.incrementProgressBy(-1); 
                 // Title progress is in range 0..10000  
                 setProgress(100 * progressHorizontal.getProgress()); 
             } 
         }); 
 
         button = (Button) findViewById(R.id.increase_secondary); 
         button.setOnClickListener(new Button.OnClickListener() { 
             public void onClick(View v) { 
                 progressHorizontal.incrementSecondaryProgressBy(1); 
                 // Title progress is in range 0..10000  
                 setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress()); 
             } 
         }); 
 
         button = (Button) findViewById(R.id.decrease_secondary); 
         button.setOnClickListener(new Button.OnClickListener() { 
             public void onClick(View v) { 
                 progressHorizontal.incrementSecondaryProgressBy(-1); 
                 // Title progress is in range 0..10000  
                 setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress()); 
             } 
         }); 
          
 } 
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.