android 进度条ProgressBar

来源:互联网 发布:网页设计数据库培训 编辑:程序博客网 时间:2024/03/29 08:18
<!--水平进度条--><ProgressBar    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/progressbar1"    style="@android:style/Widget.ProgressBar.Horizontal"/><!--圆形进度条--><ProgressBar    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/progressbar2"    style="?android:attr/progressBarStyleLarge"/>
private ProgressBar horizonP;   //水平进度条private ProgressBar circleP ;  //圆形进度条private int mProgressStatus = 0;//完成进度private Handler mHandler;

horizonP = (ProgressBar) findViewById(R.id.progressbar1);    circleP = (ProgressBar) findViewById(R.id.progressbar2);    mHandler = new Handler(){        @Override        public void handleMessage(Message msg) {            if(msg.what == 0x111){                horizonP.setProgress(mProgressStatus);//更新进度            }else{                Toast.makeText(MainActivity.this,"操作已完成",Toast.LENGTH_LONG).show();                horizonP.setVisibility(View.GONE);                circleP.setVisibility(View.GONE);            }        }    };    new Thread(new Runnable() {        @Override        public void run() {           while (true){               mProgressStatus = doWork();   //获取耗时操作完成的百分比               Message m = Message.obtain();               if(mProgressStatus<100){                   m.what = 0x111;                   mHandler.sendMessage(m);               }else{                   m.what = 0x110;                   mHandler.sendMessage(m);                   break;               }           }        }        private int doWork(){            mProgressStatus += Math.random()*10;//改变完成进度            try {                Thread.sleep(200);//线程休眠200毫秒            } catch (InterruptedException e) {                e.printStackTrace();            }            return  mProgressStatus;        }    }).start();}

0 0
原创粉丝点击