ProgressBar的常用属性:style,进度条的样式,默认为圆形,用style="?android:attr/progressBarStyleHorizontal"可以将进度条设为条状;android:progress,进度条当前所处进度;android:max,进度条总进度。

        用线程实现进度条的注意事项:不能在主线程中执行耗时的操作,只能在子线程中操作;另外,在子线程中不能操作主线程中的控件(ProgressBar除外):

修改后MainActivity.java里的代码如下:

public class MainActivity extends AppCompatActivity {     private int p=0;//当前进度    private ProgressBar pb_main_download;//进度条    private TextView tv_main_desc;//显示文本的控件    private MyHandler myHandler=new MyHandler();//新写的Handler类     public class MyHandler extends Handler{        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            int code=msg.what;//接受处理码            switch (code){                case 1:                    p++;                    pb_main_download.setProgress(p);//给进度条的当前进度赋值                    tv_main_desc.setText(p+"%");//显示当前进度为多少                    break;            }        }    }     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);         //根据ID找到进度条        pb_main_download=findViewById(R.id.pb_main_download);        //根据ID找到显示文本的控件        tv_main_desc=findViewById(R.id.tv_main_desc);    }     //点击Download按钮所调用的方法    public void download(View view) {        if(0==p){//如果当前进度为0            new myThread().start();//开启线程        }    }     public class myThread extends Thread{        @Override        public void run() {            super.run();            while(true){                try {                    Thread.sleep(100);//使线程休眠0.1秒                } catch (InterruptedException e) {                    e.printStackTrace();                }                 if(p==100){//当前进度等于总进度时退出循环                    p=0;                    break;                }                 Message msg=new Message();                msg.what=1;                myHandler.sendMessage(msg);//发送处理码            }        }    }}

 



---------------------
作者:前路漫漫,两手空空
来源:CSDN
原文:https://blog.csdn.net/weixin_42687829/article/details/82728791
版权声明:本文为博主原创文章,转载请附上博文链接!

更多相关文章

  1. Android中的Handler总结
  2. android handler介绍
  3. android handler介绍
  4. Android(安卓)Handler机制
  5. Android中AsyncTask的简单用法
  6. Android(安卓)Handler机制剖析
  7. Android(安卓)UI开发第二十二篇——android 瀑布流图片实现
  8. Android(安卓)Notification通知栏的必备姿势
  9. 活用Android的Message Queue(2)

随机推荐

  1. 自定义开关控件(ToggleView)继承View实现
  2. 主流移动平台分辨率
  3. android framework之Audio
  4. Android百度地图的搜索及附近地址的检索
  5. Android开关控件ToggleButton
  6. Android(安卓)闪光灯
  7. android JS互交图片点击事件
  8. android 绘图与自定义控件
  9. Android手机监控应用(二)
  10. 2013.12.05(7)——— android ViewPagerInd