上篇博客发了一下 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>
怕有的小伙伴 找不到合适的 蒙版图片 附上一张备用
希望可以帮助到大家 ,谢谢!