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. JVM笔记-逃逸分析

    参考: http://www.iteye.com/topic/473355http://blog.sina.com.cn/s/blog_4b6047bc01000avq.html 什么是逃逸分析(Es ...

  2. IOS--UIAlertView的使用方法详细

    IOS--UIAlertView的使用方法详细   // UIAlertView的常用方法 // 标准样式 UIAlertView *oneAlertView = [[UIAlertView allo ...

  3. UIAlertView的使用方法

    UIAlertView的使用方法 1. 最简单的用法 UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示" mes ...

  4. Struts2 DMI的使用

    Struts2的Action类中可以放置多个方法并在struts.xml中配置供页面调用.只要方法符合execute()方法的标准即返回类型是String就可以了. 同一个Action多个方法调用的方 ...

  5. 伯克利DB的一个BUG

    一旦没有手工close掉伯克利DB,则缓存里的数据不会主动写入到文件中,因此非常难于排查这个BUG,记录在这里提醒自己

  6. Linux&shell之结构化命令

    写在前面:案例.常用.归类.解释说明.(By Jim)使用if-then语句如果命令的退出状态是0(成功执行命令),将执行then后面的所有命令.如果命令的退出状态是0以外的其他值,那么then后面的 ...

  7. 最大流Dinic

    不断用BFS构造分层网络,用DFS增广.中途用取指的cur优化DFS. Dinic封装模板: #include <cstdio> #include <iostream> #in ...

  8. COJ 0503 比赛

    比赛 难度级别:D: 运行时间限制:2000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 初三年级举办了一场篮球赛,共有N个班级参加.当WZJ知道了这件事情, 已经 ...

  9. -_-#【Canvas】圆弧运动

    var canvas = document.getElementById('canvas') var context = canvas.getContext('2d') var angle = 0 f ...

  10. white-space norma nowrap强制同一行内显示所有文本文字,让所有文字内容中一排显示不换行

    日常我们为了让文字内容在一行内显示完,哪怕宽度不够也不能换行,我们可以使用white-space样式,但如果遇到了html br强制换行标签,无论是设置white-space与否都会被<br&g ...