Android ApiDemos樣本解析(182):Views->Progress Bar-&gt

來源:互聯網
上載者:User

進程條ProgressBar可以用來顯示某個操作(比如下載檔案)當前的進度,應用可以根據操作的進度改變進程條的長度。Android 中的進程條還支援一個輔助的進度條來顯示莫個中間操作的進度,比如說解壓一個檔案包,主進度條可以顯示整個檔案包的解壓進度,輔助進度條可以顯示當前正在解壓的檔案的進度。

對於一些無法事Crowdsourced Security Testing道操作所需時間,可以將ProgressBar 設定成”indeterminate” 模式,此時進度條可以顯示一個不斷轉動的滾輪或是一個水平的進度條。

在Layout中定義ProgressBar,如本例:


[html] 
<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″ /> 

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


ProgressBar 預設顯示為 Spinning Wheel (時間未定模式),如果需使用水平進度條,將其模式設為progressBarStyleHorizontal。(或style=”@android:style/Widget.ProgressBar.Horizontal)  如果你需要明確指定進度條當前進度值,必須使用水平進度條風格。

另外一個常見的風格為Widget.ProgressBar.Small,表現為一個小號的旋轉滾輪,應用中可以用來表示一個延時的操作(如下載)

ProgressBar 支援的風格有如下幾種:

Widget.ProgressBar.Horizontal
Widget.ProgressBar.Small
Widget.ProgressBar.Large
Widget.ProgressBar.Inverse
Widget.ProgressBar.Small.Inverse
Widget.ProgressBar.Large.Inverse

如果使用attr 則可以使用如下attr:

progressBarStyle
progressBarStyleHorizontal
progressBarStyleInverse
progressBarStyleLarge
progressBarStyleLargeInverse
progressBarStyleSmall
progressBarStyleSmallInverse
progressBarStyleSmallTitle

其中Inverse 表示以反色顯示進度條。

本例介紹了ProgressBar 的基本用法,可以通過按鈕來修改進度條的進度值(同時使用了兩個進度條:主進度條和輔助進度條)。

要注意的是Activity  本身也提供了幾個和進度條相關的方法(顯示在標題列中),可以控制標題列中顯示的進度條顯示。

setProgress(int progress)
setProgressBarIndeterminate(boolean indeterminate)
setProgressBarIndeterminateVisibility(boolean visible)
setProgressBarVisibility(boolean visible)
而對於ProgressBar 本身則是通過incrementProgressBy 和 incrementSecondaryProgressBy 來修改進度條當前顯示的值。

[java] 
final ProgressBar progressHorizontal 
 = (ProgressBar) findViewById(R.id.progress_horizontal); 
setProgress(progressHorizontal.getProgress() * 100); 
setSecondaryProgress(progressHorizontal.getSecondaryProgress() 
 * 100); 
 
... 
progressHorizontal.incrementProgressBy(-1); 
... 
progressHorizontal.incrementSecondaryProgressBy(-1); 

final ProgressBar progressHorizontal www.2cto.com
 = (ProgressBar) findViewById(R.id.progress_horizontal);
setProgress(progressHorizontal.getProgress() * 100);
setSecondaryProgress(progressHorizontal.getSecondaryProgress()
 * 100);

...
progressHorizontal.incrementProgressBy(-1);
...
progressHorizontal.incrementSecondaryProgressBy(-1);

 


 

聯繫我們

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