ProgressBar有两个进度
一个是android:progress
一个是android:secondaryProgress:主要是为缓存需要所涉及的,比如在看网络视频时候都会有一个缓存的进度条以及还要一个播放的进度,在这里缓存的进度就可以是android:secondaryProgress,而播放进度就是android:progress。
mPD = ProgressDialog.show(MainActivity.this,
TitleStr, //窗体标题
MessageStr, //消息内容
true, //true则显示圆动画,设为false才显示 进度条 通过 mPD.setProgress(int); 设置进度
false); //是否可以取消
setProgress(int) //设置第一进度
setSecondaryProgress(int) //设置第二进度
getProgress() //获取第一进度
getSecondaryProgress() //获取第二进度
incrementProgressBy(int) //增加或减少第一进度 增减量
incrementSecondaryProgressBy(int) //增加或减少第二进度 增减量
getMax() //获取最大进度
通过 new 方式 创建 ProgressDialog
final ProgressDialog mPD = new ProgressDialog(this);
// 设置进度条的形式为圆形转动的进度条
mPD.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 设置是否可以通过点击Back键取消
mPD.setCancelable(true);
// 设置在点击Dialog外是否取消Dialog进度条
mPD.setCanceledOnTouchOutside(false);
// 设置提示的title的图标,默认是没有的,如果没有设置title的话只设置Icon是不会显示图标的
mPD.setIcon(R.drawable.ic_launcher);
// 设置提示的title的标题
mPD.setTitle("标题");
// 设置提示的Message的内容
mPD.setMessage("这是显示的消息内容");
// dismiss监听
mPD.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
}
});
// 监听Key事件被传递给dialog
mPD.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
return false;
}
});
// 监听cancel事件
mPD.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
}
});
//设置可点击的按钮,最多有三个(默认情况下)
mPD.setButton(DialogInterface.BUTTON_POSITIVE, "确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
mPD.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
mPD.setButton(DialogInterface.BUTTON_NEUTRAL, "中立",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
// 显示
mPD.show();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(5000);
// cancel和dismiss方法本质都是一样的,都是从屏幕中删除Dialog,唯一的区别是
// 调用 cancel 方法会回调 DialogInterface.OnCancelListener 如果注册的话
// 调用 dismiss 方法不会回调
mPD.cancel();
// mPD.dismiss();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();