Android學習筆記(4)——基本控制項之ProgressBar

來源:互聯網
上載者:User

ProgressBar 控制項
 
ProgressBar就是所謂的進度條,進度條在Android中的樣式也分為好幾種,有條狀的,也有圓形轉動的。
首先要在布局檔案中,定義和設定ProgressBar的樣式。
 
程式碼片段如下:
<ProgressBar 
    android:id="@+id/bar1"//設定ProgressBar的id
    android:layout_width="200dp"設定ProgressBar的長度
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleHorizontal"//設定ProgressBar的類型為水平條狀
    android:max="100"//設定ProgressBar總共有多少格
    android:visibility="gone"//設定ProgressBar為預設不可見
/>
 
<ProgressBar 
    android:id="@+id/bar2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?android:attr/ progressBarStyleSmall "//設定ProgressBar的類型為小圓圈
    android:visibility="gone"
/>
<ProgressBar 
    android:id="@+id/bar3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyle"//設定ProgressBar的類型為中等圓圈
    android:visibility="gone"
/>
 
<ProgressBar 
    android:id="@+id/bar4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleLargeInverse"//設定ProgressBar的類型為反轉的大圓圈
    android:visibility="gone"
/>
 
上面的代碼定義了四個ProgressBar,其中第一個為條狀的進度條,可以設定id,設定進度條的長度,這裡的style屬性是設定進度條的樣式的,在android.R.attr 包中定義了各種樣式的參數,有progressBarStyleHorizontal,progressBarStyleSmall,progressBarStyle,progressBarStyleLarge,也有在轉圈的樣式參數後面加上Inverse,即progressBarStyleSmallInverse,progressBarStyleInverse,progressBarStyleLargeInverse,就可以得到反轉的轉圈進度條了。
接著在Activity中得到進度條的對象,對於一個ProgressBar對象,我們可以有很多操作,我們可以設定背景色,設定可見與否,設定長寬等許多操作。對於一個條狀的進度條,可以這時候設定最大格數,也可以理解為進度條的最大值,預設是100。同時,條狀進度條不僅有主進度,還有輔進度條,也可以叫做第二進度條。一般輔進度比主進度跑得快,且主進度條的顏色比輔進度條深,那樣可以表示預先載入等資訊,比較形象。
程式碼片段如下:
 
private ProgressBar  bar1 = (ProgressBar)findViewById(R.id.bar1);
      private ProgressBar  bar2 = (ProgressBar)findViewById(R.id.bar2);
      private ProgressBar  bar3 = (ProgressBar)findViewById(R.id.bar3);
      private ProgressBar  bar4 = (ProgressBar)findViewById(R.id.bar4);
        
        start = (Button)findViewById(R.id.start);
        start.setOnClickListener(new Button.OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                if(i==0){
                    bar1.setVisibility(View.VISIBLE); //設定可見
                    bar2.setVisibility(View.VISIBLE);
                    bar3.setVisibility(View.VISIBLE);
                    bar4.setVisibility(View.VISIBLE);
                }else if(i<100){
                    bar1.setProgress(i);
                    bar1.setSecondaryProgress(i+10);  //設定輔進度條  
                    bar2.setProgress(i);
                    bar3.setProgress(i);
                    bar4.setProgress(i);
                }else{
                    bar1.setVisibility(View.GONE);
                    bar2.setVisibility(View.GONE);
                    bar3.setVisibility(View.GONE);
                    bar4.setVisibility(View.GONE);
                }
                i+=10;
            }
        });
運行效果:
 

 
 
 
上面的例子中,有一個start按鈕,按鈕上綁定了一個事件,每次點擊start按鈕,進度條就會向前走一步。
當然,現實應用肯定會結合線程以及之後要學的Handler來進行自動的改變進度,而不會傻傻的點擊使進度條前進,這裡的例子只是對ProgressBar的使用做一些解釋。
以上內容和之前的幾篇部落格是一些Android的基礎控制項,之後就不講基礎控制項了,會講一些Android的特性,因為高階的控制項需要一些Android特性的支援。而且,單純的基礎控制項作用並不大,必須結合一些Android特性,才能靈活的做出好的應用。控制項的使用方式可以舉一反三,可以參考android的api文檔來自己學習練習。
附件是範例程式碼,僅供參考。
 
本文出自 “戰神殿” 部落格

相關文章

聯繫我們

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