アプリケーションをもう少しユーザーフレンドリーにしたいので、ユーザーがアプリケーションを初めて起動したときにさまざまなコンポーネントを強調表示する一種のオーバーレイを表示することを考えていました。
これを実装するための最良の方法は何ですか?
次に例を示します。
アプリケーションをもう少しユーザーフレンドリーにしたいので、ユーザーがアプリケーションを初めて起動したときにさまざまなコンポーネントを強調表示する一種のオーバーレイを表示することを考えていました。
これを実装するための最良の方法は何ですか?
次に例を示します。
これはかなり古いことは知っていますが、これを見つけて少し修正しました。私にとってはうまくいきます。
「overlay.png」ファイルを作成して「drawable」にコピーします
layout/overlay_activity.xml を作成する
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Overlay_activity"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background= "@null"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivOverlayEntertask"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/overlay" />
</LinearLayout>
xml/overlay_prefs.xml を作成します。
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:defaultValue="true"
android:key="overlaypref"
android:summary="Enable Overlay Screen"
android:title="Overlay Screen" />
</PreferenceScreen>
アクティビティで、SharedPreferences のインスタンスとブール値を作成して値を保存します。
SharedPreferences setOverlay;
boolean showOverlay;
次に、OnCreate でオーバーレイ CheckBoxPreference の値を取得し、それが true の場合は、画像をアクティビティにオーバーレイします。
setOverlay = PreferenceManager.getDefaultSharedPreferences(this);
showOverlay = setOverlay.getBoolean("overlaypref", true);
if (showOverlay == true) {
showActivityOverlay();
}
アクティビティに新しいメソッドを作成します: showActivityOverlay() このメソッドが行うことは、アクティビティの開始時にオーバーレイを表示し、ユーザーが画面をタップすると、「overlaypref」を「false」に設定し、かぶせる。
private void showActivityOverlay() {
final Dialog dialog = new Dialog(this,
android.R.style.Theme_Translucent_NoTitleBar);
dialog.setContentView(R.layout.overlay_activity);
LinearLayout layout = (LinearLayout) dialog
.findViewById(R.id.overlay_activity);
layout.setBackgroundColor(Color.TRANSPARENT);
layout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.dismiss();
SharedPreferences.Editor editor = setOverlay.edit();
editor.putBoolean("overlaypref", false);
editor.commit();
}
});
dialog.show();
}
フレームまたは相対レイアウトを使用します。
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent">
<include layout="@layout/normalLayout" />
<include layout="@layout/overlayLayout" />
</RelativeLayout>
onCreate で、オーバーレイが必要かどうかを確認し、必要な場合は ContentView をオーバーレイ バージョンに設定します。クリックすると、オーバーレイを非表示にするか、ContentView を通常のレイアウトに設定できます。