不飞则已,一飞冲天;不鸣则已,一鸣惊人。这篇文章主要讲述Android中通过实现线程更新ProgressDialog(对话进度条)相关的知识,希望能为你提供帮助。
作为开发者我们需要经常站在用户角度考虑问题,比如在应用商城下载软件时,当用户点击下载按钮,则会有下载进度提示页面出现,现在我们通过线程休眠的方式模拟下载进度更新的演示,如图(这里为了截图方便设置对话进度条位于屏幕上方):
文章图片
layout界面代码(仅部署一个按钮):
1 < ?xml version="1.0" encoding="utf-8"?> 2 < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3android:orientation="vertical" android:layout_width="match_parent" 4android:layout_height="match_parent"> 5< Button 6android:layout_width="wrap_content" 7android:layout_height="wrap_content" 8android:text="下载"//真正项目时建议将文本资源统一定义配置在res下的strings.xml中 9android:onClick="begin"/> 10 < /LinearLayout>
Java代码实现(通过线程实现模拟下载进度更新):
1 public class ProgressBarDemo extends AppCompatActivity { 2@Override 3protected void onCreate(@Nullable Bundle savedInstanceState) { 4super.onCreate(savedInstanceState); 5setContentView(R.layout.progressbar); 6} 7public void begin(View v) { 8//实例化进度条对话框(ProgressDialog) 9final ProgressDialog pd = new ProgressDialog(this); 10pd.setTitle("请稍等"); 11//设置对话进度条样式为水平 12pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 13//设置提示信息 14pd.setMessage("正在玩命下载中......"); 15//设置对话进度条显示在屏幕顶部(方便截图) 16pd.getWindow().setGravity(Gravity.TOP); 17pd.setMax(100); 18pd.show(); //调用show方法显示进度条对话框 19//使用匿名内部类实现线程并启动 20new Thread(new Runnable() { 21int initial = 0; //初始下载进度 22@Override 23public void run() { 24while(initial< pd.getMax()){//设置循环条件 25pd.setProgress(initial+=40); //设置每次完成40 26try { 27Thread.sleep(1000); 28} catch (InterruptedException e) { 29e.printStackTrace(); 30} 31} 32pd.dismiss(); //进度完成时对话框消失 33} 34}).start(); 35} 36 }
【Android中通过实现线程更新ProgressDialog(对话进度条)】
推荐阅读
- Android中editText使用报错
- Android Studio 2.2.2导入Eclipse中创建的项目
- Android之第三方框架使用汇总
- Qt for Android之Hello World
- Android开发--布局
- Android - Style问题
- 关于编译Android源码
- Android NDK常见配置问题的解决方案
- Android MonoGame坑记