開發平台:

Android studio(version 2.2.3)

測試平台:

Android studio模擬機(android 5)

實作內容:

為什麼要使用ProgressBar?當程式需要執行比較費時個工作,通常就會顯示一個進度列表,讓使用者了解目前工作進度。

 

ProgressBar的xml。

<ProgressBar    
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="52dp"
android:id="@+id/progressBar"
android:layout_above="@+id/textView"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"/>

 

其中只要更換style中的字,就可以更換成不同ProgressBar。

style="?android:attr/progressBarStyleLarge"(較大的ProgressBar)
style="?android:attr/progressBarStyle"(一般大小的ProgressBar)
style="?android:attr/progressBarStyleSmall"(較小的ProgressBar)
style="?android:attr/progressBarStyleHorizontal"(水平長條ProgressBar)

 

使用Android Studio提供的功能即可輕鬆選取需要的ProgressBar。

 

因為只有Horizontal ProgressBar才需設定進度條。所以就以Horizontal ProgressBar來實作。

Step1 使用Thread隨時更新進度條。

new Thread(new Runnable(){
@Override
public void run(){
 //do something
}
}).start();

 

Step2 用setProgress()來設定進度條。p.s. 如果要像Youtube那樣的緩衝畫面,可以再另外搭配setSecondaryProgress()。

progressBar.setProgress(20);

 

Step3 把background Thread 處理事項post到Handler中(直接post一個Runnable物件到Handler中),讓Handler通知UI Thread去做更新。

handler.post(new Runnable(){
@Override
public void run(){
 //do something
 //e.g. progress.setProgessBar(20);
}
});

 

測試畫面:

程式碼:

https://github.com/shen0512/Progressbar2

文章標籤
全站熱搜
創作者介紹
創作者 a7069810 的頭像
a7069810

紀錄自己的程式人生

a7069810 發表在 痞客邦 留言(0) 人氣(3,970)