Posted at

Android ディスプレイをフルスクリーンにする方法

More than 3 years have passed since last update.

Androidのディスプレイは、デフォルトではタイトルバーとナビゲーションバーが表示されます。

ディスプレイをフルスクリーンに以下の方法を試してみてください。


タイトルバーを無くす方法

requestWindowFeatureを使用します。

コードを参考にしてください。


activity

@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}

※Activity#onCreateにてsetContentViewの前にセットすること。


ナビゲーションバーを隠す方法

今回はナビゲーションバーを隠す方法を説明します。

以下のコードを参考にしてください。


activity

@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View decor = this.getWindow().getDecorView();
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

getDectorView()で取得したViewに各フラグをセットします。


■View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

インタラクションがない間ナビゲーションバーを非表示にする

API14(Ver4.0)から使用できます。


■View.SYSTEM_UI_FLAG_FULLSCREEN

ステータスバーを非表示にする

API16(Ver4.1)から使用できます。


■View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

一定時間経過すると、再度非表示にする。

API19(Ver4.4)から使用できます。

こんな感じで分岐すれば、、、


java

public static void setNavigationbarHide(Activity activity, boolean hide){

View decor = activity.getWindow().getDecorView();
if(hide && Build.VERSION.SDK_INT > 18)
{
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
else if(hide && Build.VERSION.SDK_INT > 15)
{
decor.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
}
else if(hide && Build.VERSION.SDK_INT > 13)
{
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
else
{
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}

}


各APIによって、可能な限り各バーを隠すことができます。

が、アプリの挙動に合わない場合もあるので、仕様によって使い方は考えたほうがいいと思います。