ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

android-实例-对话框(ProgressDialog)

android-实例-对话框(ProgressDialog) ProgressDialog常用属性dialog.hide() //隐藏 dialog.cancel(); //销毁回调dialog.show(); //显示 dialog.dismiss(); //正常关闭dialog.setIcon(R.drawable.app_icon); //图标 dialog.setTitle(提示); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 风格1-圆形旋转进度条 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);风格2-水平进度条实例1-带旋转动画的等待窗口 (高版本已经放弃)ProgressDialog dialog new ProgressDialog(context); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setMessage(请稍等...); // 设置ProgressDialog 提示信息 dialog.setIndeterminate(false); // 设置ProgressDialog 的进度条是否不明确 dialog.setCancelable(false); // 设置ProgressDialog 是否可以按退回按键取消 dialog.show(); // 设置对话框大小 Window window dialog.getWindow(); if (window ! null) { WindowManager.LayoutParams layoutParams new WindowManager.LayoutParams(); layoutParams.copyFrom(window.getAttributes()); // 设置宽度和高度单位像素 layoutParams.width 400; // 宽度 layoutParams.height 120; // 高度 // 或者使用 DP 单位推荐 // layoutParams.width (int) (300 * getResources().getDisplayMetrics().density); // layoutParams.height (int) (200 * getResources().getDisplayMetrics().density); window.setAttributes(layoutParams); }实例2-带旋转动画的等待窗口 推荐RotateLoadingDialog dialog new RotateLoadingDialog(); dialog.show(context, 数据导出中...); dialog.hide();// 关闭对话框import android.app.AlertDialog; import android.content.Context; import android.widget.ProgressBar; public class RotateLoadingDialog { private AlertDialog dialog; public void show(Context context, String message) { ProgressBar pb new ProgressBar(context); pb.setPadding(50, 0, 50, 20); dialog new AlertDialog.Builder(context) .setMessage(message) .setView(pb) .setCancelable(false) .create(); dialog.show(); } public void hide() { if (dialog ! null dialog.isShowing()) { dialog.dismiss(); } } }实例3-带旋转动画的等待窗口 ( 取消 确定稍后提醒)ProgressDialog dialog new ProgressDialog(context); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setMessage(请稍等...); // 设置ProgressDialog 提示信息 dialog.setIndeterminate(false); // 设置ProgressDialog 的进度条是否不明确 dialog.setCancelable(false); // 设置ProgressDialog 是否可以按退回按键取消 dialog.setButton(DialogInterface.BUTTON_NEGATIVE,稍后提醒, new DialogInterface.OnClickListener() { Override public void onClick(DialogInterface dialog, int which) { Log.e(TAG, onClick: 稍后提醒); } }); dialog.setButton(DialogInterface.BUTTON_NEUTRAL,取消, new DialogInterface.OnClickListener() { Override public void onClick(DialogInterface dialog, int which) { // 取消按钮的点击事件 dialog.dismiss(); Log.e(TAG, onClick: 取消); } }); dialog.setButton(DialogInterface.BUTTON_POSITIVE,确定, new DialogInterface.OnClickListener() { Override public void onClick(DialogInterface dialog, int which) { Log.e(TAG, onClick: 确定); } }); dialog.show();实例3-水平进度条final ProgressDialog pd2 new ProgressDialog(context); pd2.setTitle( 蓝牙搜索中...); pd2.setIcon(R.mipmap.ic_launcher_round); pd2.setCancelable(false); //点击进度条以外进度条消失 pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd2.setMax(100); pd2.show(); new Thread(new Runnable() { Override public void run() { try { for (int i 0; i 100; i){ pd2.setProgress(i); Thread.sleep(100); } pd2.cancel(); } catch (InterruptedException e) { e.printStackTrace(); } } }).start();待更新
返回列表