我们创建进度条对话框的方式有两种:

  • 1.直接调用ProgressDialog提供的静态方法show()显示
  • 2.创建ProgressDialog,再设置对话框的参数,最后show()出来

效果图如下:

MainActivity.java的代码如下:

package com.deepreality.progressdialogdemo;import android.app.ProgressDialog;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Button btnNormalDialog, btnLinearDialog, btnLiearDialogWithUpdateProgress;private int currentProgress = 0;private int add = 0;private ProgressDialog pd1 = null;private ProgressDialog pd2 = null;private final static int MAXVALUE = 100;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);componentInit();componentAddOnClickListener();}Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 123) {pd2.setProgress(currentProgress);}if (currentProgress >= MAXVALUE) {pd2.dismiss();}}};public void componentInit() {btnNormalDialog = findViewById(R.id.main_btnNormalDialog);btnLinearDialog = findViewById(R.id.main_btnLinearDialog);btnLiearDialogWithUpdateProgress = findViewById(R.id.main_btnLinearDialogWithUpdateProgress);}public void componentAddOnClickListener() {btnNormalDialog.setOnClickListener(this);btnLinearDialog.setOnClickListener(this);btnLiearDialogWithUpdateProgress.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.main_btnNormalDialog:{//这里的话参数依次为,上下文,标题,内容,是否显示进度,是否可以用取消按钮关闭ProgressDialog.show(MainActivity.this, "资源加载中", "资源加载中,请稍后...",false,true);break;}case R.id.main_btnLinearDialog:{pd1 = new ProgressDialog(MainActivity.this);//依次设置标题,内容,是否用取消按钮关闭,是否显示进度pd1.setTitle("软件更新中");pd1.setMessage("软件正在更新中,请稍后...");pd1.setCancelable(true);//这里是设置进度条的风格,HORIZONTAL是水平进度条,SPINNER是圆形进度条pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pd1.setIndeterminate(true);//调用show()方法将ProgressDialog显示出来pd1.show();break;}case R.id.main_btnLinearDialogWithUpdateProgress:{//初始化属性currentProgress = 0;add = 0;//依次设置一些属性pd2 = new ProgressDialog(MainActivity.this);pd2.setMax(MAXVALUE);pd2.setTitle("文件读取中");pd2.setMessage("文件加载中,请稍后...");//这里设置为不可以通过按取消按钮关闭进度条pd2.setCancelable(false);pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//这里设置的是是否显示进度,设为false才是显示的哦!pd2.setIndeterminate(false);pd2.show();//这里的话新建一个线程,重写run()方法,new Thread(){public void run(){while(currentProgress < MAXVALUE){//这里的算法是决定进度条变化的,可以按需要写currentProgress = 2 * usetime() ;//把信息码发送给handle让更新界面handler.sendEmptyMessage(123);}}}.start();break;}default:break;}}//这里设置一个耗时的方法:private int usetime() {add++;try{Thread.sleep(100);}catch (InterruptedException e) {e.printStackTrace();}return add;}
}

Android开发中ProgressDialog的基本用法(总结)相关推荐

  1. android include 控件详解,Android开发中include控件用法分析

    本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面 ...

  2. android中checkbox使用方法,Android开发中CheckBox的简单用法示例

    本文实例讲述了Android开发中CheckBox的简单用法.分享给大家供大家参考,具体如下: CheckBox是一种在界面开发中比较常见的控件,Android中UI开发也有CheckBox,简单的说 ...

  3. Android开发中ExpandableListView的基本用法(总结)

    ExpandableListView是一个可折叠的ListView. 效果如下: 思路: 1.创建数据适配器,继承与BaseExpandableListAdapter.(实现相应的重写方法) 2.创建 ...

  4. Android开发中使用七牛云存储进行图片上传下载

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...

  5. 在 Android 开发中使用 Kotlin 协程 (一) -- 初识 Kotlin 协程

    前言 最近在研究 Kotlin 协程,发现功能真的超级强大,很有用,而且很好学,如果你正在或计划使用 Kotlin 开发 Android,那么 Kotlin 协程你一定不能错过! 协程是什么? 我们平 ...

  6. Android开发中常见的设计模式

    对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次.而在android开发中,必要的了解一些设计模式又是非常有必要的.对于想系统的学习设计模式的 ...

  7. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果

    有时候我们对自己开发的项目经常不满意,但是我们要达到自定义刷新动画的效果有一定的难度,别着急,下面爱站技术频道和大家分享Android开发中MJRefresh自定义刷新动画效果,一起来学习吧! [一] ...

  8. android开发中遇到的问题汇总

    android开发中遇到的问题汇总(五),android汇总127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框 http://dwtedx.com/itshare_297.html1 ...

  9. Android开发中的日常积累

    欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存 ...

最新文章

  1. Docker使用遇到问题Got permission denied while trying to connect to the Docker daemon socket解决方案
  2. nagios 使用MSN 发报警消息
  3. ubuntu18 安装redis-manager
  4. 关于window.history.back()后退问题
  5. 实例44:python
  6. Struts2工作流程
  7. Struts2学习笔记(十八) 防止表单重复提交
  8. 跟KingDZ学HTML5之八 HTML5之Web Save
  9. 传输线模型(分布参数模型)
  10. Windows10 部分系统无法安装USB转串口驱动问题解决
  11. git merge fast-forward squash no-ff
  12. DCM: 诊断通信管理 (Diagnostic Communiction Manager)
  13. PPO:Proximal Policy Optimization Algorithms
  14. XXL-Job Docker部署
  15. 基于影像基因的肺结节分割、肺癌分类分期、CT影像预测基因突变 --董云云 论文阅读
  16. PMP项目进度管理-在线甘特图
  17. SDUT OJ 2132 (一般算术表达式转换成后缀式)
  18. 【观察】戴尔科技:树立数据保护全新标杆,为企业数字化保驾护航
  19. 洛谷-P2198 杀蚂蚁
  20. 关于错误:[Error] expected primary-expression before ‘int‘

热门文章

  1. selenium安装Chrome插件
  2. win11安装node并且配置环境变量
  3. codeGenerator
  4. 视觉AI:它是什么,为什么它很重要?
  5. 连接DeaDBeeF和osd-lyrics
  6. `uvm_create 与`uvm_send
  7. 方舟如何管理linux服务器,方舟:生存进化CentOS开服教程
  8. 音乐人对于音质的追求,在这款耳机上体现的淋漓尽致
  9. Wireshark抓包解释说明
  10. 手机游戏趋势和相关J2ME APIs