Android學習筆記(4)——基本控件之ProgressBar – Android移動開發技術文章_手機開發 Android移動開發教學課程

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文檔來自己學習練習。
附件是示例代碼,僅供參考。
 
本文出自 “戰神殿” 博客

發佈留言