進度條:相信大家也都明白,有了進度條,那麼給使用者就不會造成,長時間的等待而覺得自己的程式挂掉了,是以,這個小demo還是可一看看的,那麼接下來,然我們來看看到底是如何實作的。
1.效果圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TUOFTWq5EMVRVT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DOxcDMwYzM5ADOwEDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.布局說明:
1.textview顯示進度條
2.ProgressBar進度條
3.進度條配置:
<ProgressBar
android:id="@+id/pb"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100" />
其中:max可以手動設定,也就是你下載下傳的内容大小,style也是
3.執行個體源碼:
package com.zengtao.classwork;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.widget.ProgressBar;
public class MainActivity extends ActionBarActivity {
private ProgressBar pb; // 進度條
private int[] randData = new int[100]; // 數組
private int index = 0; // 索引
private int mProgressStaus = 0; // 設定進度條的長度
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb = (ProgressBar) findViewById(R.id.pb);
// 初始化handle,綁定在主線程中的隊列消息中
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 接收消息
if (msg.what == 0x111) {
mProgressStaus = index;
pb.setProgress(mProgressStaus);
}
}
};
// 建立子線程,在子線程中處理耗時工作
new Thread() {
@Override
public void run() {
super.run();
while (index < 100) {
doWork();
Message msg = new Message();
msg.what = 0x111;
mHandler.sendMessage(msg);
}
}
}.start();
}
/**
* 模拟耗時工作(一定要在子線程中做)
*
* @return 進度條的多少
*/
public int doWork() {
randData[index++] = (int) (Math.random() * 100);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
return index;
}
}
4.dowork()方法是模拟的一個耗時操作,當然你自己也可以用其他的代替,比如:網上下載下傳圖檔,下載下傳好了,之後顯示出來等等。
以上是自己的勞動成果,雖然小的跟蚊子一樣,但是也是肉,希望能幫到大家,謝謝。