Android中的常用控件之进度条(ProgressBar)
Posted derekhan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中的常用控件之进度条(ProgressBar)相关的知识,希望对你有一定的参考价值。
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
版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于Android中的常用控件之进度条(ProgressBar)的主要内容,如果未能解决你的问题,请参考以下文章