Android中的常用控件之进度条(ProgressBar)
2024-10-06 01:44:29
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
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- 百度地图多点路径加载以及调整页面js
- JavaScript语言精粹(读书笔记)
- 深入理解 NodeList
- iOS常用库之Masonry
- 常用的Linux操作
- WPF的进度条progressbar,运行时间elapse time和等待spinner的实现
- Mysql免安装版脚本
- Linux 技巧之 Grub 超实用技巧
- 深入理解yield(转)
- Loadrunner分布式测试
- 在Ubuntu中部署并测试Fabric 1.0 Beta
- 转:C++与JAVA语言区别
- MVC中一般为什么用IQueryable而不是用IList?
- 面试准备——(三)Selenium(1)基础问题及自动化测试
- mysql数据库数据的 备份以及还原
- MySQL InnoDB Update和Crash Recovery流程
- Linux 下统计Apache每分钟的并发数
- MyBatis中的if写法
- [Android] android.util.Log
- BAT for 循环
热门文章
- 牛客练习赛32B Xor Path (树形dp)
- C# VS2010 windows服务的安装
- 《Java知识应用》Java读写DBF文件
- Docker 以及 docker-compose 的部署
- [译]C# 7系列,Part 2: Async Main 异步Main方法
- Mbp,一个用于学习.net core的开发框架
- c++-zoo动物园
- SAP QA32试图做UD,系统报错-工厂 BTYC中的 QM 基选设置需要维护
- android只设置部分控件随着软键盘的出现而腾出空间
- Pikachu-XSS