1. 程式人生 > >DIalog實現蒙版指引提示效果

DIalog實現蒙版指引提示效果

上篇部落格發了一下 DialogUtil 的工具方法

這篇文章就給大家講一下 如果用 dialog  實現應用的 蒙版介紹指引功能。先貼下效果圖

               

話不多說  程式碼獻上

//這個通用的 CustomDialog其實上篇部落格已經寫到了  再貼一下
    public static Dialog getCustomDialog(final Activity activity, View view, boolean dismissTouchOutside,
            boolean cancelable, int theme) {
        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;
    }


上面方法中用到的 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>



//這個裡面用到的圖片自己替換下 


 public static void checkIsShowTipsDialog(final Activity activity, String activityTag) {


        final Preferences pref = Preferences.getInstance(activity);
        View view = LayoutInflater.from(activity).inflate(R.layout.dialog_tips, null, true);
        ImageView imageView = (ImageView) view.findViewById(R.id.tips_iv);
        boolean isShow = false;
        if (activityTag.equals(DIALOG_TIPS_ACTIVITY_HOMEPAGE)) {
            isShow = pref.getBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_HOMEPAGE, false);
            imageView.setBackgroundResource(R.drawable.tips_homepage);
            pref.putBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_HOMEPAGE, true);
        } else if (activityTag.equals(DIALOG_TIPS_ACTIVITY_LIVING)) {
            isShow = pref.getBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_LIVING, false);
            imageView.setBackgroundResource(R.drawable.tips_living);
            pref.putBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_LIVING, true);
        } else if (activityTag.equals(DIALOG_TIPS_ACTIVITY_LIVING_PREPARE)) {
            isShow = pref.getBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_LIVING_PREPARE, false);
            imageView.setBackgroundResource(R.drawable.tips_living_setting);
            pref.putBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_LIVING_PREPARE, true);
        } else if (activityTag.equals(DIALOG_TIPS_ACTIVITY_PERSONAL)) {
            isShow = pref.getBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_PERSONAL, false);
            imageView.setBackgroundResource(R.drawable.tips_personal);
            pref.putBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_PERSONAL, true);
        } else if (activityTag.equals(DIALOG_TIPS_ACTIVITY_PERSONAL_VIDEO)) {
            isShow = pref.getBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_PERSONAL_VIDEO, false);
            imageView.setBackgroundResource(R.drawable.tips_personal_video);
            pref.putBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_PERSONAL_VIDEO, true);
        } else if (activityTag.equals(DIALOG_TIPS_ACTIVITY_LIVING_WATCHING)) {
            isShow = pref.getBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_LIVING_WATCHING, false);
            imageView.setBackgroundResource(R.drawable.tips_watching);
            pref.putBoolean(Preferences.KEY_IS_SHOW_TIPS_DIALOG_LIVING_WATCHING, true);
        }
        if (isShow) {
            return;
        }
        final Dialog dialog = getCustomDialog(activity, view, true, true, -1);
        view.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View view) {
                dialog.dismiss();
            }
        });
        dialog.show();
    }




dialog_tips.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <ImageView
        android:id="@+id/tips_iv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"/>
</LinearLayout>

怕有的小夥伴 找不到合適的 蒙版圖片 附上一張備用


希望可以幫助到大家 ,謝謝!