开发过程中 经常需要各种弹出框 用来做提示 或者 展示一些 数据信息。写了一个 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(安卓)8怎么修改USB默认为MTP
  2. Android之用自定义的shape去实现shadow效果
  3. Android获取剪贴板内容
  4. Android添加一个系统service
  5. android 用代码画虚线边框背景
  6. Android之——原生分享功能
  7. Android的建议
  8. Android帮助文档翻译——开发指南(一)应用程序基本原理
  9. 分享20个Android游戏源码,希望大家喜欢哈!

随机推荐

  1. 我泪目了, 8 个人的毕业“典礼”!
  2. 那些为学校刷屏的人,刷的是什么?|无用但有
  3. 写给毕业后的自己!
  4. Kubernetes中的亲和性与反亲和性
  5. C++ 模板沉思录(上)
  6. Python 为什么推荐蛇形命名法?
  7. Python 为什么会有个奇怪的“...”对象?
  8. 最近学到的几个Excel可视化骚操作,必须分
  9. Python爬虫自动化,帮小姐姐解放双手
  10. 同学,你这简历上没项目啊!