ProgressDialog,进度对话框。一般有两种,一种是圆形的进度条(ProgressDialog.STYLE_SPINNER),另一种是长条形的进度条(ProgressDialog.STYLE_HORIZONTAL)。

 

  ProgressDialog常用的方法有以下几种:

  progressDialog = new ProgressDialog(MainActivity.this);             // 新建一个ProgressDialog
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式
progressDialog.setTitle("Note:"); // 设置标题
progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容
progressDialog.setIndeterminate(false); // 是否是不确定状态
progressDialog.setCancelable(true); // 是否可以取消
progressDialog.setProgress(0); // 设置初始进度
progressDialog.setMax(200); // 设置最大进度
progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示)
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override // 设置按钮
public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置
progressDialog.cancel(); // BUTTON_POSITIVE 为最右边
} // BUTTON_NEUTRAL 为在中间
}); // BUTTON_NEGATIVE 为最左边
progressDialog.show(); // 显示ProgressDialog

1、圆形进度条

         btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg);

         btnCricleDlg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("Note:");
progressDialog.setMessage("这是一个圆形进度条");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int witch) {
progressDialog.cancel();
}
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int witch){
progressDialog.cancel();
}
});
progressDialog.show();
}
});

2、长形进度条

       btnLongDlg = (Button) findViewById(R.id.btnLongDlg);
btnLongDlg.setOnClickListener(new View.OnClickListener() {
int count = 0;
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式
progressDialog.setTitle("Note:"); // 设置标题
progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容
progressDialog.setIndeterminate(false); // 是否是不确定状态
progressDialog.setCancelable(true); // 是否可以取消
progressDialog.setProgress(0); // 设置初始进度
progressDialog.setMax(200); // 设置最大进度
progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示)
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override // 设置按钮
public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置
progressDialog.cancel(); // BUTTON_POSITIVE 为最右边
} // BUTTON_NEUTRAL 为在中间
}); // BUTTON_NEGATIVE 为最左边
progressDialog.show(); // 显示ProgressDialog new Thread(){
public void run(){
while(count<=200){
try{
Thread.sleep(100);
progressDialog.incrementProgressBy(1);
}catch(Exception e){ } }
} }.start();
}
});

3、完整代码

 import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button btnCricleDlg;
private Button btnLongDlg;
private ProgressDialog progressDialog; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg);
btnLongDlg = (Button) findViewById(R.id.btnLongDlg); btnCricleDlg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("Note:");
progressDialog.setMessage("这是一个圆形进度条");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int witch) {
progressDialog.cancel();
}
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int witch){
progressDialog.cancel();
}
});
progressDialog.show();
}
}); btnLongDlg.setOnClickListener(new View.OnClickListener() {
int count = 0;
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式
progressDialog.setTitle("Note:"); // 设置标题
progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容
progressDialog.setIndeterminate(false); // 是否是不确定状态
progressDialog.setCancelable(true); // 是否可以取消
progressDialog.setProgress(0); // 设置初始进度
progressDialog.setMax(200); // 设置最大进度
progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示)
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override // 设置按钮
public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置
progressDialog.cancel(); // BUTTON_POSITIVE 为最右边
} // BUTTON_NEUTRAL 为在中间
}); // BUTTON_NEGATIVE 为最左边
progressDialog.show(); // 显示ProgressDialog new Thread(){
public void run(){
while(count<=200){
try{
Thread.sleep(100);
progressDialog.incrementProgressBy(1);
}catch(Exception e){ } }
} }.start();
}
}); } }

MainActivity.java

Android开发手记(8) ProgressDialog的使用的更多相关文章

  1. Android 开发手记一NDK编程实例

    在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Development Kit的简称.它是一个工具集,集成 ...

  2. Android开发手记(28) Handler和Looper

    Android的消息处理有三个核心类:Looper,Handler和Message.其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道.平 ...

  3. Android开发手记(24) Log的使用及颜色的更改

    在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.本文 ...

  4. Android开发手记(22) 传感器的使用

    Android的传感器主要包括八大传感器,他们分别是:加速度传感器(accelerometer).陀螺仪(gyroscope).方向传感器(orientation).磁力传感器(magnetic fi ...

  5. Android开发手记(18) 数据存储三 SQLite存储数据

    Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 SQLite 是以嵌入式为目的 ...

  6. Android开发手记(17) 数据存储二 文件存储数据

    Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 本文主要介绍如何使用文件来存储 ...

  7. Android开发手记(32) 使用摄像头拍照

    在Android中,使用摄像头拍照一般有两种方法, 一种是调用系统自带的Camera,另一种是自己写一个摄像的界面. 我们要添加如下权限: <uses-permission android:na ...

  8. Android开发手记(31) 使用MediaRecorder录音

    使用Android手机的时候,有时我们会用到录音功能,本文简单的介绍了如何使用MediaRecorder通过手机自带麦克风进行录音. 首先,既然是录音,我们需要录音和写外存的权限: <uses- ...

  9. Android开发手记(30) 触摸及手势操作

    触摸操作在现在智能手机系统中起到举足轻重的作用,本文将对安卓中的触摸以及一些简单手势的操作进行简单的介绍. 1.触摸 首先是关于触摸的判断,有两种方法可以判断的触摸操作. (1)setOnTouchL ...

随机推荐

  1. jquery.cookie()方法

    jquery.cookie.js是一个轻量级的cookie 插件,可以读取.写入.删除 cookie. 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件. < ...

  2. Deprecated: Call-time pass-by-reference has been deprecated in E:\wamp\www\admin\htdocs\busi.php on line 381

    Deprecated: Call-time pass-by-reference has been deprecated in E:\wamp\www\admin\htdocs\busi.php on ...

  3. 【leetcode】1. Two Sums

    题目 https://leetcode.com/problems/two-sum/   Given an array of integers, find two numbers such that t ...

  4. bzoj2487: Super Poker II

    Description I have a set of super poker cards, consisting of an infinite number of cards. For each p ...

  5. ajax切换明星头像!

    html部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. nginx的使用配置

    nginx为反向代理服务器,可以反向代理不同域名转向不同的具体服务器.可以用于负载压力或是同一台机器使用不同域名进行访问. 以下片段是服务器配置: #user cmcc; worker_process ...

  7. 【Oracle】Windows 7下完全卸载Oracle 11g数据库

    闲来无事,想把Oracle 11g重装一下,记录如下:   (1)首先在服务中停止所有的Oracle服务:   (2)开始 -> 程序 -> Oracle-OraDb11g_home1 - ...

  8. LD1-K(求差值最小的生成树)

    题目链接 /* *题目大意: *一个简单图,n个点,m条边; *要求一颗生成树,使得其最大边与最小边的差值是所有生成树中最小的,输出最小的那个差值; *算法分析: *枚举最小边,用kruskal求生成 ...

  9. 最小费用最大流MCMF 最小增广

    没有写单纯性的...应该不会有卡最小增广的出题人吧...(雾) struct MCMF{ struct tedge{int x,y,cap,flow,w,next;}adj[maxm];int ms, ...

  10. -_-#【React】

    React Native 用于构建用户界面的JAVASCRIPT库 | ReactReact 入门实例教程颠覆式前端UI开发框架:Reactzhihu1zhihu2 React.js编程思想 < ...