フルスクリーン表示のアプリケーションを作る


ゲームなどのアプリケーションを作成しているときに、通知領域やタイトルバーを出したくないことがあると思います。
今回は、通知領域とタイトルバーを消す方法を紹介します。

通知領域を消すと、ユーザに電波状況や電池の消耗状況、ノーティフィケーションの情報などが見えなくなります。電波を使用するアプリケーションや電池の消耗が大きなアプリケーションでは、通知領域が見えないことでユーザに不利益が起こるかもしれません。
メリット・デメリットを考えた上で本機能を使うことをお勧めします。

詳細は続きをどうぞ

通知領域とタイトルバーの非表示

フルスクリーンにする為には、「タイトルバー」と「通知領域」を非表示にする必要があります。
「タイトルバー」の非表示には、Activity#requestWindowFeature()Window#FEATURE_NO_TITLEを指定します。

「通知領域」の非表示には、Window#addFlags()を利用します。

HogeActivity.java

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //タイトルバーの非表示
        //setContentViewの前に呼ぶ必要がある
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.main);

        //通知領域の非表示
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

    }

また上記とは別に、AndroidManifestファイルにThemeの設定を書きこむことでフルスクリーンモードの設定することも出来ます。

AndroidManifest.xml

        <activity android:name=".Main"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

これらの設定はHoneyComb(Android 3.x)では有効ではありませんでした。
HoneyCombには、「BACK」「HOME」「APP履歴」にハードキーが用意されず、下部の通知領域バーの左側にソフトキーで「BACK」「HOME」「APP履歴」ボタンが表示されているからだと考えられます。

One Comment