web-dev-qa-db-ja.com

全画面アクティビティの使用

私は単純なゲームを作成しており、これまではブランクアクティビティを使用してきました。画面全体をカバーしたいのですが、フルスクリーンアクティビティを使用して全体を再コーディングする必要がありますか?私はオンラインで何かを探してみましたが、出会ったすべてのものにこのビットが追加されていました:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                     WindowManager.LayoutParams.FLAG_FULLSCREEN);

これにより、デバイスで起動するとすぐにアプリがクラッシュします。 SO誰かが私のエラーを見せてくれるなら、お願いします。

Logcat出力とゲームコードへのリンクは次のとおりです

Logcatとゲームコード

12
nabeel

これを試して、アクティビティをフルスクリーンに設定します。

_getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
_

このコードをonCreate()メソッドに配置できます

30
Michele Lacorte

次のコードを試すことができます。

style.xml:

<style name="AppTheme.NoTitle" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>

AndroidManifest.xml:

<activity
    Android:name=".FullScreenActivity"
    Android:theme="@style/AppTheme.NoTitle"
    Android:screenOrientation="portrait"
    Android:launchMode="singleTop">
</activity>
26
t-kashima

上記の答えはどれも正しく機能しません。 onResume()メソッドに問題があり、ソフトキーが表示されます。

それを行う正しい方法はかなり簡単です。フルスクリーンになるActivityでこのメソッドをオーバーライドします。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}

「スティッキーイマージョン」が欲しければ。完全なドキュメント here を確認して、使用例に適したものを決定してください。

4
RominaV

AndroidManifest.xmlファイル内

<activity
       Android:name=".Launch"
       Android:label="@string/app_name"
       Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" > <!-- This line is important -->

<intent-filter>
    <action Android:name="Android.intent.action.MAIN" />
    <category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>

クラスはAppCompatActivityではなくActivityを拡張する必要があります...

2
KAMAL VERMA

あなたが欲しかったのはイマーシブモードと呼ばれ、Android 4.4以上で動作します

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

公式ドキュメントは こちら にあります

2

マニフェストファイルに移動し、要件に応じて、マニフェストファイルのAndroid:theme="@Android:style/Theme.NoTitleBar.Fullscreen"または<activity />タグに<application />を追加するだけです。

0
tk1505