(原文)
/**
Showing a progress bar
Creating a ProgressDialog
ProgressDialog是AlertDialog的子类,可以显示进度动画:用旋转的环表示进度未定义的task;用进度条表示定义了进度的task。这个dialog也可以提供按钮,比如下载过程中的取消按钮。
打开一个进度dialog简单到只要调用ProgressDialog.show()就可以了。
比如:
ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "",
"Loading. Please wait...", true);
效果:
第一个参数是程序的context, 第二个参数是tittle,第三个是message, 第三个参数表示这个progress时候是不清楚的(它只在创建进度条的时候有意义, which is discussed in the next section).
显示一个用动画表示进度的进度条:
1、用构造方法ProgressDialog(Context)初始一个ProgressDialog。
2、用setProgressStyle(int)设置style为STYLE_HORIZONTAL,并设置其他的属性,比如message等。
3、准备显示dialog的时候调用show()或者使用onCreateDialog(int)来返回这个ProgressDialog。
4、可以调用setProgress(int)传递目前完成的全部百分比或者vincrementProgressBy(int)传递增量值来增加进度条显示的进度。
比如:
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(mContext);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(false);
设置ProgressDialog很简单,创建ProgressDialog的多数代码多数是用来更新它的。你会发现需要使用Handler来创建新的线程来进行这项工作并把进度反映到Activity的UI上。
Example ProgressDialog with a second thread
This example uses a second thread to track the progress of a process (which actually just counts up to 100). The thread sends a Message back to the main Activity through a Handler each time progress is made. The main Activity then updates the ProgressDialog.
package com.example.progressdialog;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class NotificationTest extends Activity {
static final int PROGRESS_DIALOG = 0;
Button button;
ProgressThread progressThread;
ProgressDialog progressDialog;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Setup the button that starts the progress dialog
button = (Button) findViewById(R.id.progressDialog);
button.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
showDialog(PROGRESS_DIALOG);
}
});
}
protected Dialog onCreateDialog(int id) {
switch(id) {
case PROGRESS_DIALOG:
progressDialog = new ProgressDialog(NotificationTest.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Loading...");
progressThread = new ProgressThread(handler);
progressThread.start();
return progressDialog;
default:
return null;
}
}
// Define the Handler that receives messages from the thread and update the progress
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
int total = msg.getData().getInt("total");
progressDialog.setProgress(total);
if (total >= 100){
dismissDialog(PROGRESS_DIALOG);
progressThread.setState(ProgressThread.STATE_DONE);
}
}
};
/** Nested class that performs progress calculations (counting) */
private class ProgressThread extends Thread {
Handler mHandler;
final static int STATE_DONE = 0;
final static int STATE_RUNNING = 1;
int mState;
int total;
ProgressThread(Handler h) {
mHandler = h;
}
public void run() {
mState = STATE_RUNNING;
total = 0;
while (mState == STATE_RUNNING) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Log.e("ERROR", "Thread Interrupted");
}
Message msg = mHandler.obtainMessage();
Bundle b = new Bundle();
b.putInt("total", total);
msg.setData(b);
mHandler.sendMessage(msg);
total++;
}
}
/* sets the current state for the thread,
* used to stop the thread */
public void setState(int state) {
mState = state;
}
}
}
**/
分享到:
相关推荐
android 自定义组合progressdialog进度条,方便你的使用............................................................................................
在Android应用开发中,ProgressDialog是用户界面中常见的一种组件,用于在执行耗时操作时向用户提供反馈,通常显示为一个带有进度条的对话框。在本文中,我们将深入探讨如何在Android中使用ProgressDialog,以及其...
在Android开发中,ProgressDialog是一个非常常用的组件,它用于在用户执行长时间操作时显示一个带有进度条的对话框,提供一种良好的用户体验,让用户知道系统正在后台处理任务。在本篇文章中,我们将深入探讨...
在Android开发中,ProgressDialog是一个非常常见的组件,它用于在执行耗时操作时向用户展示一个对话框,通常显示一个进度条来表示任务的进度。这个组件对于提升用户体验至关重要,因为它可以告知用户应用正在进行...
本篇文章将详细讲解Android中的几种常见提示对话框:ProgressDialog、DatePickerDialog、TimePickerDialog以及PopupWindow。 首先,我们来看ProgressDialog,它是一个显示进度条的对话框,常用于表示后台任务的执行...
本文将深入探讨如何在Android中自定义ProgressDialog对话框。 首先,要创建自定义ProgressDialog,我们需要继承自`DialogFragment`而不是直接使用`ProgressDialog`类。`DialogFragment`是Android推荐的处理对话框的...
本示例主要关注`Android`中的几种基本对话框类型:普通AlertDialog、列表对话框(ListDialog)、进度对话框(ProgressDialog)以及自定义对话框,通过实例来阐述如何在代码中实现它们。 首先,我们来看`AlertDialog...
Android ProgressDialog 进度条对话框的模拟实现和代码解析,此为例子源代码,在本例中实现进度条需要调用onPrepareDialog()方法和showDialog(),应用程序处理进度条指示功能。
本资源提供了Android对话框的源码,包含十几种不同的动画效果,可以极大地丰富应用的用户体验。接下来,我们将深入探讨Android对话框的基础知识、自定义对话框以及各种动画效果的应用。 首先,Android系统提供了两...
在Android应用开发中,当需要执行耗时操作,如连接服务器获取数据时,为了提供良好的用户体验,通常会显示一个等待对话框(ProgressDialog),告知用户应用正在进行后台处理。这个等待对话框可以防止用户在数据交互...
一、Android对话框的基本类型 1. **AlertDialog**: 它是最常见的对话框类型,提供了标题、内容和一个或多个按钮。可以通过`AlertDialog.Builder`来创建,设置标题、消息和按钮。 2. **ProgressDialog**: 用于展示...
在Android开发中,ProgressDialog是一个非常常见的组件,用于在应用程序执行耗时操作时向用户显示进度。然而,系统默认的ProgressDialog样式可能无法满足所有设计需求,因此开发者常常需要对其进行自定义,以实现更...
这个"自定义进度对话框ProgressDialog"项目提供了一个可以直接运行的示例,帮助开发者理解如何根据需求定制这种对话框。 首先,ProgressDialog有两种样式:旋转指示器(菊花)和水平进度条。在自定义ProgressDialog...
通过分析这些内容,我们可以深入理解Android对话框的工作原理及其创建方法。 首先,Android中的对话框分为几种类型,包括普通对话框(AlertDialog)、进度对话框(ProgressDialog)、自定义对话框等。这里主要关注...
在Android开发中,自定义加载对话框ProgressDialog是一种常见的需求,特别是在执行耗时操作如网络请求、数据处理等场景,为了提供良好的用户体验,我们通常会显示一个加载指示器,让用户知道应用正在后台工作。...
在Android应用开发中,对话框...总之,Android对话框是用户界面的重要组成部分,熟练掌握各种对话框的用法和自定义技巧,可以提升应用的交互体验。通过不断实践和学习,你可以创建出符合设计规范、功能强大的对话框。
在Android开发中,ProgressDialog是一种常用的UI组件,用于在执行耗时操作时向用户展示进度或提示信息,如“请稍后……”。为了提供更个性化的用户体验,开发者有时需要自定义ProgressDialog,比如添加滚动条效果。...
Android SDK 提供了多种内置的对话框样式,如警报对话框(AlertDialog)、进度对话框(ProgressDialog)和简单对话框(AlertDialog.Builder)。下面我们将逐一探讨这些对话框的用法。 1. 警报对话框(AlertDialog)...
在Android开发中,ProgressDialog是一个非常常见的组件,它用于在用户执行长时间操作时显示一个带有进度指示的对话框,以提供用户反馈并防止他们误操作。这个"Android ProgressDialog进度条对话框.rar"压缩包可能...