Fullscreen

fullscreen.png

Android

if (Build.VERSION.SDK_INT >= 19) {
            View decor = this.getWindow().getDecorView();
            decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }else{
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }

IMMERSIVEは没入感という意味
SYSTEM_UI_FLAG_IMMERSIVE_STICKY 上と下のバーを表示して、数秒したら消すようにするという意味

DecorViewとはなにか?

PhonwWindowのルート要素らしい。

ダイアログが登場するとフルスクリーンが解除されてしまう!のを防ぐ方法

AndroidManifest.xmlに記述する方法
AndroidManifest.xmlにはthemeで用意されています。

タイトルバーを消す

<activity android:theme="@android:style/Theme.NoTitleBar">
タイトルバーとステータスバーを消す
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
Themeには3つの指定がされています。
// タイトルバーを消す
<item name="android:windowNoTitle">true</item>
// ステータスバーを消す
<item name="android:windowFullscreen">true</item>
// タイトルバーの影を消す
<item name="android:windowContentOverlay">@null</item>

javaソースファイルに記述する方法

public void onCreate(Bundle savedInstanceState) {
………
  // タイトルバーを消す
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  // ステータスバーを消す
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
………
}

遭遇したエラー

android.util.AndroidRuntimeException: requestFeature() must be called before adding content

requestFeature()

フルスクリーンにするための関数を呼んだら、内部でコレが呼ばれるらしい。

public boolean requestFeature (int featureId)

extended screen featuresを有効化する。
setContentView()の前に呼ばれなければいけない。
May be called as many times as desired as long as it is before setContentView().
If not called, no extended features will be available. You can not turn off a feature once it is requested. You canot use other title features with FEATURE_CUSTOM_TITLE.

Parameters
featureId The desired features, defined as constants by Window.
Returns
The features that are now set.

GLUT

glutFullScreen()

サポートサイト Wikidot.com