ProgressBar作用是在界面上顯示一個進度條。
用法也很簡單,代碼如下:
android:id="@+id/progressbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal" //設置進度條的樣式爲水平進度條(默認爲圓形進度條)
android:max="100" //設置一個最大值
/>
private Button buttonOne;
private ProgressBar progressBar;
private Handler handler;
private TimerTask task; //這是一個抽象類
private Timer timer; //定義一個定時器 Timer是一個普通的類,裏面有幾個方法
private int progress = 0; //初始化進度條的值
private boolean isfull = false; //用來判斷進度條是否已經讀取完
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonOne = (Button)findViewById(R.id.buttonOne);
progressBar = (ProgressBar)findViewById(R.id.progressbar);
buttonOne.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
//用handler對象裏面的handleMessage方法來進行消息處理.
handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what){
case 0x001:
progressBar.setVisibility(View.VISIBLE); //設置進度條爲可見
buttonOne.setVisibility(View.INVISIBLE); //設置按鈕爲隱藏
progressBar.setProgress(progress); //改變進度條的值
break;
case 0x002:
progressBar.setVisibility(View.GONE); //刪除進度條
buttonOne.setVisibility(View.VISIBLE); //設置按鈕爲可見
task.cancel(); //結束線程
timer.cancel();
Toast.makeText(MainActivity.this,"加載完成",Toast.LENGTH_LONG).show();
break;
}
}
};
task = new TimerTask() {
public void run() {
if (!isfull){
if (progress < 100){
progress++;
handler.sendEmptyMessage(0x001);
}else{
handler.sendEmptyMessage(0x002);
}
}
}
};
}
}