2016年2月3日水曜日

libGDXでフルスクリーンをやめる

フルスクリーンになりがち

libGDXはなんも設定しないとフルスクリーンになる。なんならImmersiveになる。なるべく大きくなろうとする。(Unityもそうだ)
でもそんなに大きくなられると困ることもある。
libGDXのバージョンによるだろうから、上から順にみていって怪しいところいじってみて欲しい。

Android

Theme

AndroidManifest.xmlをチェックすると
android:theme="@style/GdxTheme"
 というテーマになっているが、こいつのなかで
        <item name="android:windowFullscreen">true</item>
とある。これをfalseにする。

Config

AndroidLauncher.javaをチェックすると
AndroidApplicationConfigurationのインスタンスをデフォルトのまま使っている。これを

AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useImmersiveMode = false;
config.hideStatusBar = false;
として、ImmersiveModeやステータスバーを非表示にする処理を抑制する。

Initialize

引き続きAndroidLauncher.javaをチェックすると、

initialize(app, config);
という処理がある。ここで様々なAndroidに関する初期化が行われるわけだ。しかしこのままだとまたステータスバーを非表示にする処理が走るので、
View view = initializeForView(app, config);
setContentView(view);
に変更する。

iOS

iOSは単純明快で、info.plist.xml の
<key>UIStatusBarHidden</key>
<true/>
をfalseにすればよい。