开发过程中 经常需要各种弹出框 用来做提示 或者 展示一些 数据信息。写了一个 DialogUtil , 话不多说 直接上代码 ,希望对大家有帮助。


public static Dialog getProcessDialog(Activity activity, CharSequence message,        boolean dismissTouchOutside, boolean cancelable) {    final LayoutInflater inflater = LayoutInflater.from(activity);    View v = inflater.inflate(R.layout.progress_hud, null);    Dialog dialog = getCustomDialog(activity, v, dismissTouchOutside, cancelable, -1);    if (dismissTouchOutside) {        dialog.setCanceledOnTouchOutside(true);    } else {        dialog.setCanceledOnTouchOutside(false);    }    ImageView spinner = (ImageView) v.findViewById(R.id.spinnerImageView);    ((AnimationDrawable) spinner.getBackground()).start();    TextView messageTv = (TextView) v.findViewById(R.id.message);    if (TextUtils.isEmpty(message)) {        messageTv.setVisibility(View.GONE);    } else {        messageTv.setText(message);        messageTv.setVisibility(View.VISIBLE);    }    return dialog;}public static Dialog getCustomDialog(final Activity activity, View view, boolean dismissTouchOutside,        boolean cancelable, int theme) {    //Dialog dialog = theme > 0 ? new FullScreenDialogHUD(activity, theme)    //        : new Dialog(activity, R.style.Dialog_FullScreen);    Dialog dialog = new Dialog(activity, R.style.Dialog_FullScreen);    dialog.setContentView(view);    dialog.setCancelable(cancelable);    dialog.setCanceledOnTouchOutside(dismissTouchOutside);    if (!cancelable) {        dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {            @Override            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {                    dialog.dismiss();                    activity.finish();                }                return false;            }        });    }    return dialog;}public static Dialog getOneButtonDialog(final Activity activity, String content,        boolean dismissTouchOutside, boolean cancelable,        DialogInterface.OnClickListener confirmOnClickListener) {    Dialog dialog = new AlertDialog.Builder(activity)            .setPositiveButton(R.string.confirm, confirmOnClickListener)            .setCancelable(cancelable)            .setMessage(content)            .create();    dialog.setCanceledOnTouchOutside(dismissTouchOutside);    if (!cancelable) {        dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {            @Override            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {                    dialog.dismiss();                    activity.finish();                }                return false;            }        });    }    return dialog;}public static Dialog getButtonsDialog(Activity activity, int resId,        DialogInterface.OnClickListener confirmOnClickListener) {    return getButtonsDialog(activity, activity.getString(resId), true, true, confirmOnClickListener,            null);}public static Dialog getButtonsDialog(Activity activity, String content,        DialogInterface.OnClickListener confirmOnClickListener) {    return getButtonsDialog(activity, content, true, true, confirmOnClickListener, null);}public static Dialog getButtonsDialog(Activity activity, String content, boolean dismissTouchOutside,        boolean cancelable, DialogInterface.OnClickListener confirmOnClickListener,        DialogInterface.OnClickListener cancelOnClickListener) {    Dialog dialog = new AlertDialog.Builder(activity)            .setNegativeButton(R.string.cancel, cancelOnClickListener)            .setPositiveButton(R.string.confirm, confirmOnClickListener)            .setCancelable(cancelable)            .setMessage(content)            .create();    dialog.setCanceledOnTouchOutside(dismissTouchOutside);    return dialog;}progress_hud.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="vertical"    android:gravity="center_horizontal"    android:background="@android:color/transparent">    <ImageView        android:id="@+id/spinnerImageView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@anim/spinner"/>    <TextView        android:id="@+id/message"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="15dp"        android:textColor="#FFFFFF"/></LinearLayout>style   Dialog_FullScreen<style name="Dialog.FullScreen" parent="Theme.AppCompat.Dialog">    <item name="android:windowFrame">@null</item>    <item name="android:windowIsFloating">true</item>    <item name="android:windowContentOverlay">@android:color/transparent</item>    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>    <item name="android:windowIsTranslucent">true</item>    <item name="android:windowNoTitle">true</item>    <item name="android:windowFullscreen">true</item>    <item name="android:windowBackground">@android:color/transparent</item>    <item name="android:backgroundDimEnabled">true</item></style>




有这些 其他弹出个人信息框 都可以自定义用getCustomDialog这个方法传 对应的 view 实现。很方便。

希望对大家有帮助。

更多相关文章

  1. 《第一行代码——Android》
  2. Android SDK 源代码编译
  3. android布局实例代码
  4. 第一行代码Android第三课
  5. Android 开源源代码收集(不断更新中...)
  6. Android顶部工具栏和底部工具栏的简单实现代码
  7. 设置提示信息,输入值类型,输入框引入图片,设置输入框的形状

随机推荐

  1. 在Android(安卓)studio 项目中使用 9patc
  2. Android全屏设置的两种方式
  3. Android(安卓)动画监听器
  4. http://dl-ssl.google.com/android上不去
  5. Android(安卓)Intent 序列化和反序列化
  6. Android(安卓)用户反馈界面的实现
  7. (Android)画个钟看看
  8. Debug native code using addr2line on A
  9. GridView层属性
  10. android:Spinner 设置收起以及展开的字体