Android開發之進度條

來源:互聯網
上載者:User

一、基礎知識:

 

1.ProgressBar在介面檔案XML中的布局:

[html]

<progressBar android:id="@+id/progressbar_updown" 

        android:layout_width="200dp"  

        android:layout_height="wrap_content" 

        style="?android:attr/progressBarStyleHorizontal" 

        android:layout_gravity="center_vertical"  

        android:max="100" 

        android:progress="50" 

        android:secondaryProgress="70"    >  

<progressBar android:id="@+id/progressbar_updown"

        android:layout_width="200dp"

        android:layout_height="wrap_content"

        style="?android:attr/progressBarStyleHorizontal"

        android:layout_gravity="center_vertical"

        android:max="100"

        android:progress="50"

        android:secondaryProgress="70"    > 

[plain]

style="?android:attr/progressBarStyleHorizontal"    設定風格為長形  

android:max="100"    最大進度值為100  

android:progress="50"   初始化的進度值  

android:secondaryProgress="70" 初始化的底層第二個進度值  

android:layout_gravity="center_vertical"    垂直置中 

style="?android:attr/progressBarStyleHorizontal"    設定風格為長形

android:max="100"    最大進度值為100

android:progress="50"   初始化的進度值

android:secondaryProgress="70" 初始化的底層第二個進度值

android:layout_gravity="center_vertical"    垂直置中

 

 

2.ProgressBar在代碼檔案(.java)中的控制使用:

[java]

private ProgressBar myProgressBar; 

//定義ProgressBar  

 

myProgressBar = (ProgressBar) findViewById(R.id.progressbar_updown); 

//ProgressBar通過ID來從XML中擷取  

 

myProgressBar.incrementProgressBy(5); 

//ProgressBar進度值增加5  

 

myProgressBar.incrementProgressBy(-5); 

//ProgressBar進度值減少5  

 

myProgressBar.incrementSecondaryProgressBy(5); 

//ProgressBar背後的第二個進度條 進度值增加5  

 

myProgressBar.incrementSecondaryProgressBy(-5); 

//ProgressBar背後的第二個進度條 進度值減少5 

private ProgressBar myProgressBar;

//定義ProgressBar

myProgressBar = (ProgressBar) findViewById(R.id.progressbar_updown);

//ProgressBar通過ID來從XML中擷取

myProgressBar.incrementProgressBy(5);

//ProgressBar進度值增加5

myProgressBar.incrementProgressBy(-5);

//ProgressBar進度值減少5

myProgressBar.incrementSecondaryProgressBy(5);

//ProgressBar背後的第二個進度條 進度值增加5

myProgressBar.incrementSecondaryProgressBy(-5);

//ProgressBar背後的第二個進度條 進度值減少5

 

3.XML重要屬性

android:progressBarStyle:預設進度條樣式

android:progressBarStyleHorizontal:水平樣式

 

 

4.重要方法

[plain]

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

 

getProgress():返回進度 

 

getSecondaryProgress():返回次要進度 

 

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

 

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

 

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

 

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

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

getProgress():返回進度

getSecondaryProgress():返回次要進度

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

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

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

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

 

  

二、代碼展示:

1."Activity_09srcyanactivity_09MainActivity.java"

[java]

package yan.activity_09; 

 

import android.os.Bundle; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.widget.Button; 

import android.widget.ProgressBar; 

import android.app.Activity; 

 

public class MainActivity extends Activity { 

    // 聲明變數  

    private ProgressBar firstBar = null; 

    private ProgressBar secondBar = null; 

    private Button myButton = null; 

    private int progress_vol = 0; 

     

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.main); 

         

        //映射控制項ID到變數  

        firstBar = (ProgressBar)findViewById(R.id.firstBar); 

        secondBar = (ProgressBar)findViewById(R.id.secondBar); 

        myButton = (Button)findViewById(R.id.myButton); 

                

        myButton.setOnClickListener(new ButtonListenr()); 

    } 

     

    class ButtonListenr implements OnClickListener{ 

 

        @Override 

        public void onClick(View v) { 

            // TODO Auto-generated method stub  

            if(0 == progress_vol) 

            { 

                // 設定進度條的最大值  

                firstBar.setMax(200); 

                // 設定進度條為可見的狀態  

                firstBar.setVisibility(View.VISIBLE); 

                secondBar.setVisibility(View.VISIBLE); 

            }else if(progress_vol < firstBar.getMax()){ 

                // 設定主進度條的當前值  

                firstBar.setProgress(progress_vol); 

                // 設定第二進度條的當前值  

                firstBar.setSecondaryProgress(progress_vol+10); 

                // 預設的進度條是無法顯示進行的狀態的  

                //secondBar.setProgress(progress_vol);  

            }else{ 

                // 設定進度條為不可見的狀態  

                firstBar.setVisibility(View.GONE); 

                secondBar.setVisibility(View.GONE); 

            } 

            progress_vol +=10; 

        } 

         

    } 

package yan.activity_09;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ProgressBar;

import android.app.Activity;

public class MainActivity extends Activity {

 // 聲明變數

 private ProgressBar firstBar = null;

 private ProgressBar secondBar = null;

 private Button myButton = null;

 private int progress_vol = 0;

 

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  

  //映射控制項ID到變數

  firstBar = (ProgressBar)findViewById(R.id.firstBar);

  secondBar = (ProgressBar)findViewById(R.id.secondBar);

  myButton = (Button)findViewById(R.id.myButton);

  

  

  myButton.setOnClickListener(new ButtonListenr());

 }

 

 class ButtonListenr implements OnClickListener{

  @Override

  public void onClick(View v) {

   // TODO Auto-generated method stub

   if(0 == progress_vol)

   {

    // 設定進度條的最大值

    firstBar.setMax(200);

    // 設定進度條為可見的狀態

    firstBar.setVisibility(View.VISIBLE);

    secondBar.setVisibility(View.VISIBLE);

   }else if(progress_vol < firstBar.getMax()){

    // 設定主進度條的當前值

    firstBar.setProgress(progress_vol);

    // 設定第二進度條的當前值

    firstBar.setSecondaryProgress(progress_vol+10);

    // 預設的進度條是無法顯示進行的狀態的

    //secondBar.setProgress(progress_vol);

   }else{

    // 設定進度條為不可見的狀態

    firstBar.setVisibility(View.GONE);

    secondBar.setVisibility(View.GONE);

   }

   progress_vol +=10;

  }

  

 }

}

 

2."Activity_09reslayoutmain.xml"

[html]

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   

    android:orientation="vertical"   

    android:layout_width="fill_parent"   

    android:layout_height="fill_parent"  

    android:background="#00aaaa"   

    >   

   <TextView 

        android:id="@+id/firstText"   

        android:text="@string/hello_world"   

        android:gravity="center_vertical"   

        android:textSize="15pt"   

        android:background="#aa0000"   

        android:layout_width="fill_parent"   

        android:layout_height="wrap_content"   

        android:singleLine="true"/>   

<ProgressBar 

    android:id="@+id/firstBar" 

    style="?android:attr/progressBarStyleHorizontal" 

    android:layout_width="200dp" 

    android:layout_height="wrap_content" 

    android:visibility="gone" 

    /> 

<ProgressBar 

    android:id="@+id/secondBar" 

    style="?android:attr/progressBarStyle" 

    android:layout_width="wrap_content" 

    android:layout_height="wrap_content" 

    android:visibility="gone" 

    /> 

<Button 

    android:id="@+id/myButton" 

    android:layout_width="wrap_content" 

    android:layout_height="wrap_content" 

    android:text="begin" 

    /> 

</LinearLayout>   

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:orientation="vertical" 

    android:layout_width="fill_parent" 

    android:layout_height="fill_parent"

 android:background="#00aaaa" 

    > 

   <TextView

  android:id="@+id/firstText" 

  android:text="@string/hello_world" 

  android:gravity="center_vertical" 

  android:textSize="15pt" 

  android:background="#aa0000" 

  android:layout_width="fill_parent" 

  android:layout_height="wrap_content" 

  android:singleLine="true"/> 

<ProgressBar

    android:id="@+id/firstBar"

    style="?android:attr/progressBarStyleHorizontal"

    android:layout_width="200dp"

    android:layout_height="wrap_content"

    android:visibility="gone"

    />

<ProgressBar

    android:id="@+id/secondBar"

    style="?android:attr/progressBarStyle"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:visibility="gone"

    />

<Button

    android:id="@+id/myButton"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="begin"

    />

</LinearLayout> 

3."Activity_09resvaluesstrings.xml"

[html]

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

<resources> 

 

    <string name="app_name">Activity_09</string> 

    <string name="hello_world">Hello world!</string> 

    <string name="menu_settings">Settings</string> 

 

</resources> 

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

<resources>

    <string name="app_name">Activity_09</string>

    <string name="hello_world">Hello world!</string>

    <string name="menu_settings">Settings</string>

</resources>

  

三、效果展示:

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.