Android ProgressBar example

ProgressBarDemoActivity.java


package com.cjp.progressdemo;


import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;


public class ProgressBarDemoActivity extends Activity {
 
Button btnStartProgress;
ProgressDialog progressBar;
private int progressBarStatus = 0;
private Handler progressBarHandler = new Handler();
 
private long fileSize = 0;
 
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
 
addListenerOnButton();
 
}
 
public void addListenerOnButton() {
 
btnStartProgress = (Button) findViewById(R.id.btnStartProgress);
btnStartProgress.setOnClickListener(
                new OnClickListener() {
 
  @Override
  public void onClick(View v) {
 
// prepare for a progress bar dialog
progressBar = new ProgressDialog(v.getContext());
progressBar.setCancelable(true);
progressBar.setMessage("File downloading ...");
progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressBar.setProgress(0);
progressBar.setMax(100);
progressBar.show();
 
//reset progress bar status
progressBarStatus = 0;
 
//reset filesize
fileSize = 0;
 
new Thread(new Runnable() {
 public void run() {
while (progressBarStatus < 100) {
 
 // process some tasks
 progressBarStatus = doSomeTasks();
 
 // your computer is too fast, sleep 1 second
 try {
Thread.sleep(1000);
 } catch (InterruptedException e) {
e.printStackTrace();
 }
 
 // Update the progress bar
 progressBarHandler.post(new Runnable() {
public void run() {
 progressBar.setProgress(progressBarStatus);
}
 });
}
 
// ok, file is downloaded,
if (progressBarStatus >= 100) {
 
// sleep 2 seconds, so that you can see the 100%
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
 
// close the progress bar dialog
progressBar.dismiss();
}
 }
      }).start();
 
          }
 
               });
 
       }
 
// file download simulator... a really simple
public int doSomeTasks() {
 
while (fileSize <= 1000000) {
 
fileSize++;
 
if (fileSize == 100000) {
return 10;
} else if (fileSize == 200000) {
return 20;
} else if (fileSize == 300000) {
return 30;
}
// ...add your own
 
}
 
return 100;
 
}
 
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值