关闭

Android ProgressBar example

814人阅读 评论(0) 收藏 举报

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;
 
}
 
}




0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:239262次
    • 积分:2739
    • 等级:
    • 排名:第13091名
    • 原创:54篇
    • 转载:35篇
    • 译文:0篇
    • 评论:59条
    文章分类
    最新评论