Android ProgressDialog 实现圆形进度对话框 和 水平进度对话框
图1:
图2:
图3:
activity_main.xml
<Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="圆形进度条对话框"android:onClick="showPD"android:layout_gravity="center"android:layout_marginTop="80dp" />
MainActivity.java:
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void showPD(View v){final ProgressDialog dialog = ProgressDialog.show(this,"数据加载","数据加载中...");// 模拟做一个长时间的工作// 长时间的工作不能在主线程做,得启动 子线程 完成new Thread(){@Overridepublic void run() {for (int i=0;i<20;i++){// 休息一会try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}// 移除 dialogdialog.dismiss(); //虽然是在子线程中执行的,但是内部使用Handler实现主线程更新UI// 不能再子线程直接更新UI, Toast// 将 子线程 切换 主线程 去更新UIrunOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,"加载完成了!!!",Toast.LENGTH_LONG).show();}});}}.start();// 注意Toast不能放在这个位置进行提示,因为多线程的意思就是在不断往下执行代码的过程中,也不断的在做线程中的逻辑问题,那么如果这样么写// 就会造成 Toast 直接提示了,应该要放在子线程执行完后,再去执行
// Toast.makeText(MainActivity.this,"加载完成了!!!",Toast.LENGTH_LONG).show();}}
总结:
1. 子线程不能更新UI界面2. 启动子线程代码:new Thread(){@Overridepublic void run() {}}.start();3. 在子线程中切换回主线程代码:runOnUiThread(new Runnable() {@Overridepublic void run() {}});4. 要注意线程的执行和方法的顺序向下执行代码块是同时进行的!
Android ProgressDialog 实现圆形进度对话框 和 水平进度对话框相关推荐
- ProgressBar(圆形、水平进度条)的基本使用(点击Button1按钮,显示或消失圆形ProgressBar)(每点击一次Button2按钮,水平进度条增加10%)
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据.它的用法也非常简单. 首先它有两种形式,一种是圆形进度条,另一种是水平进度条. 效果图: activity_main. ...
- android对话框心得,Android ProgressDialog使用总结
ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口. ProgressDialog的创建方式有两种,一种是ne ...
- android对话框知识点,Android ProgressDialog知识要点
释放双眼,带上耳机,听听看~! 当自己做一些耗时操作时,希望给用户一些提示信息,告诉用户正在进行耗时操作,这时就可以用到ProgressDialog. 1.新建一个全局变量ProgressDialog ...
- ProgressBar进度条(圆形进度条|水平进度条)
<TextView android:layout_width="wrap_content" android:layout_height="w ...
- Android自定义控件NumberCircleProgressBar(圆形进度条)的实现
Android自定义控件NumberCircleProgressBar(圆形进度条)的实现
- android欢迎页圆形倒计时,android 欢迎页圆形进度条倒计时功能
常见app欢迎页圆形进度条倒计时功能,可设置显示文字,进度条颜色,宽度,倒计时时间,内圆颜色.设置进度条类型 顺数进度条(0-100)还是倒数进度条(100-0): 先上效果图: 下面介绍实现逻辑: ...
- Android可触摸圆形进度条,Android 可滚动圆形进度条 滑块和进度在进度条上面跟着滚动...
Android 可滚动圆形进度条 滑块和进度在进度条上面跟着滚动.package com.example.test; import android.content.Context; import an ...
- android自定义水平长方形进度条,Android 自定义水平进度条的圆角进度
有时项目中需要实现水平圆角进度,如下两种,其实很简单 下面开始看代码,先从主界面布局开始看起: xmlns:tools="http://schemas.android.com/tools&q ...
- Android ProgressDialog示例
Welcome to Android ProgressDialog Example. In this tutorial we'll learn how to create Android Progre ...
- Android开发笔记(六十六)自定义对话框
AlertDialog Android中最常用的对话框是AlertDialog,它可以完成常见的交互操作,如提示.确认.选择等等,然后就是进度对话框ProgressDialog(参见< Andr ...
最新文章
- kalivm 虚拟机访问win文件夹_利用vmware搭建属于自己的win虚拟环境
- LVS原理详解以及部署
- stm32f4之GPIO
- PHP 学习 第一天
- 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
- UNIX网络编程--读书笔记
- 关键字typedef、关键字using、auto类型说明符和declytpe类型指示符
- k-means k均值聚类的弱点/缺点
- python如何将数据保存到本地json文件
- 关于XML序列化与CultureInfo
- 更改多个版本java_window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法...
- eos操作系统_【EOS币资讯】EOS币与以太坊有什么不同?
- 理解分布式和区块链技术
- 数据结构和算法——中序线索化二叉树
- 庄子(公元前369年-公元前286年)
- node.js 在 Express4.0 框架使用 Connect-Busboy 实现文件上传
- MacBook的apple id应该这样退出
- 在Redhat9下安装Oracle9
- HLK-B36 WIFI/BLE 二合一透传沙雕按键说明
- 扩大eclipse的运行内存