android各种提示Dialog 弹出框

开发过程中 经常需要各种弹出框 用来做提示  或者 展示一些 数据信息。写了一个 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 实现。很方便。
希望对大家有帮助。
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再见孙悟空_

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值