上篇博客发了一下 DialogUtil 的工具方法
这篇文章就给大家讲一下 如果用 dialog 实现应用的 蒙版介绍指引功能。
话不多说 代码献上
//这个通用的 CustomDialog其实上篇博客已经写到了 再贴一下
public static Dialog getCustomDialog(final Activity activity, View view, boolean dismissTouchOutside,
boolean cancelable, int theme) {undefined
Dialog dialog = new Dialog(activity, R.style.Dialog_FullScreen);
dialog.setContentView(view);
dialog.setCancelable(cancelable);
dialog.setCanceledOnTouchOutside(dismissTouchOutside);
if (!cancelable) {undefined
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {undefined
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {undefined
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {undefined
dialog.dismiss();
activity.finish();
}
return false;
}
});
}
return dialog;
}
上面方法中用到的 style Dialog_FullScreen
</div><div> <item name="android:windowFrame">@null</item></div><div> <item name="android:windowIsFloating">true</item></div><div> <item name="android:windowContentOverlay">@android:color/transparent</item></div><div> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item></div><div> <item name="android:windowIsTranslucent">true</item></div><div> <item name="android:windowNoTitle">true</item></div><div> <item name="android:windowFullscreen">true</item></div><div> <item name="android:windowBackground">@android:color/transparent</item></div><div> <item name="android:backgroundDimEnabled">true</item></div><div>
//这个里面用到的图片自己替换下
public static void checkIsShowTipsDialog(final Activity activity, String activityTag) {undefined
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)) {undefined
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)) {undefined
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)) {undefined
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)) {undefined
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)) {undefined
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)) {undefined
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) {undefined
return;
}
final Dialog dialog = getCustomDialog(activity, view, true, true, -1);
view.setOnClickListener(new View.OnClickListener() {undefined
@Override public void onClick(View view) {undefined
dialog.dismiss();
}
});
dialog.show();
}
dialog_tips.xml
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:id="@+id/tips_iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"/>