阅读更多 布局文件:
                



主程序入口:

package com.example.progressbar;import java.util.Timer;import java.util.TimerTask;import org.xml.sax.HandlerBase;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;public class MainActivity extends Activity {private TextView tx;private int count = 0;// 自定义 Handler信息代码,用以作为识别事件处理protected static final int Start_NOTIFIER=0x101;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tx = (TextView) findViewById(R.id.title);uppUI();}/** * 实现 6 秒钟更新 UI 界面 TX 的显示 */public void uppUI() {Timer timer = new Timer(); // 创建爱你Timer 时钟对象timer.scheduleAtFixedRate(new MyShedule(), 1, 1000); //每隔 6 秒中执行 MyShedule}/** * 实现更新的动作 * @author Administrator * */private class MyShedule extends TimerTask {public void run() {Message message = new Message();  //创建message对象message.what = MainActivity.Start_NOTIFIER;//用于自定义消息代码,以便收件人收到信息handler.sendMessage(message); //向Handler发送消息}}//创建Handler 对象,通过实现handleMessage方法,接收信息Handler handler = new Handler(){//注意:子类必须实现这个方法才能接收信息public void handleMessage(Message msg) {switch (msg.what) { //判断消息代码值case MainActivity.Start_NOTIFIER:tx.setText(new Integer(count).toString());count++;break;}}};}



和 Handler的用法:



package com.example.progressbar;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;public class ProgressBarAndHandler extends Activity {private TextView tx;private ProgressBar progressbar;private Button download;private int count = 0;// 自定义 Handler信息代码,用以作为识别事件处理protected static final int STOP_Flag = 0x100;protected static final int THREADING_Flag = 0x101;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获取各种对象tx = (TextView) findViewById(R.id.title);progressbar = (ProgressBar) findViewById(R.id.progressbar);download = (Button) findViewById(R.id.download);// 设置按钮单机事件download.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {actionForDownload();}});}/** * 按钮点击动作 */public void actionForDownload() {tx.setText(R.string.start); // 设置按钮上显示值progressbar.setVisibility(View.VISIBLE); // 设置progressbar 为可见状态progressbar.setMax(100); // 设置最大值为:100progressbar.setProgress(0); // 设置当前值为0progressbar.setIndeterminate(false); // 设置进度条为明确显示new Thread() {public void run() {while (count <= 100) {// 小于 100 的时候修改当前进度值try {count = count + 1;Thread.sleep(100); // 休眠 0.1秒// 如果值累加到了 100 则,向Handler发送 STOP_Flag 消息if (count == 100) {Message message = new Message();message.what = ProgressBarAndHandler.STOP_Flag;// 向Handler发送信息代码ProgressBarAndHandler.this.handler.sendMessage(message);break;} else { // 不等于 100 发送THREADING_Flag 消息Message m = new Message();m.what = ProgressBarAndHandler.THREADING_Flag;ProgressBarAndHandler.this.handler.sendMessage(m);}} catch (Exception ex) {ex.printStackTrace();}}}}.start();}// 根据消息进行对应的处理Handler handler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case ProgressBarAndHandler.STOP_Flag: // 表示下载完毕tx.setText("下载完毕");download.setText("下载完毕");progressbar.setVisibility(View.GONE); //设置进度条不可见Thread.currentThread().interrupt(); //中断当前线程break;case ProgressBarAndHandler.THREADING_Flag: // 表示正在下载中progressbar.setProgress(count); //修改当前进度的值tx.setText(getResources().getText(R.string.start)+Integer.toString(count)+"%)\n"+"Progress:"+Integer.toString(progressbar.getProgress()));break;}super.handleMessage(msg);}};}
  • progressBar.rar (900.8 KB)
  • 下载次数: 3

更多相关文章

  1. Android中WebView的简单使用
  2. Android(安卓)可滚动圆形进度条 滑块和进度在进度条上面跟着滚动
  3. Android读取XML文件(SAX)
  4. [Android]动态替换Fragment全屏的问题
  5. Android(安卓)ImageSwitcher
  6. 使Android支持Lambda表达式
  7. Android(安卓)getWindow().setFlags方法
  8. Android(安卓)PopupWindow显示位置和显示大小
  9. android build kernel make menuconfig及环境设置

随机推荐

  1. 【android】下载大文件保持wifi网络连接
  2. Android(安卓)matrix 控制图片的旋转、缩
  3. Android——属性动画(Property Animation)
  4. Android(安卓)使用模拟位置(支持Android(
  5. android 编译之后的文件系统和内核
  6. 编译FFMpeg的Android版本,并整合到android
  7. Android(安卓)init.rc BOOTCLASSPATH
  8. Android(安卓)SharedPreferences保存登录
  9. Android(安卓)用style简化layout布局文件
  10. android延迟执行任务(刷新按钮旋转)