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