2015-10-11 36 views
12

私は単純なゲームを作っていますが、これまで空白アクティビティを使ってきました。今度は画面全体をカバーしたいのですが、FullScreenアクティビティを使って全体をレコーディングする必要がありますか?私はオンライン何かを探してみましたが、私が出会ったすべてのものは、このビットを追加しました:​全画面表示を使用する

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

アプリは、すぐにそれがデバイス上で起動されるとクラッシュする原因となります。もし誰かが私のエラーを私に見せることができますようにしてください。

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()方法でこのコードを置くことができます:ここでは

はlogcat出力へのリンクだけでなく、ゲームコード

Logcat and game code

+0

Logcatを表示すると、エラーが表示されます。 –

+0

logcat –

+0

を追加して質問に追加してください。 –

答えて

30

がフルスクリーンをする活動を設定するには、これを試してみてくださいです

+0

本質的にこれは最初の作業ではありませんでした。私はターゲットSDKをFroyoに戻していました。一度私はKitKatに変更しましたが、これは魅力のように働いた –

+0

@Michele LacorteアンドロイドLでナビゲーション・ドロワーが消えると白い色のバーが表示されますか? –

+1

答えの下の@ t-kashima xmlの解決策はかなりいいと思います。見てみな。フルスクリーンを定義するスタイルがあれば、この受け入れられた回答のコードをどこにでも複製する必要はありません。 –

0

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

+0

それも、動作しませんでしたか? –

24

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

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:あなたは、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); 

公式ドキュメントの上に働くImersiveモードと呼ばれたかった何

<activity 
    android:name=".FullScreenActivity" 
    android:theme="@style/AppTheme.NoTitle" 
    android:screenOrientation="portrait" 
    android:launchMode="singleTop"> 
</activity> 
+2

ベストソリューションはここにあると思います。より多くのアップフォースが必要です。 – hcknl

+0

Upvotedが、うまくいきません。それをテストし、アクティビティを再開するときにソフトボタンを表示します。 – RominaV

2

が見つかりましたhere

2

の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を拡張...

4
上記が正しく動作する回答の

なし。彼らはonResume()メソッドに問題があり、ソフトキーが表示されます。

これを行う正しい方法はかなり簡単です。あなたは「スティッキーイマージョン」をしたい場合です

@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); 
    } 
} 

:フルスクリーンれるべきActivityで、このメソッドをオーバーライドします。完全な文書hereをチェックし、ユースケースに適したものを決定してください。

+1

ありがとう!これは受け入れられた答えでなければなりません。多くのスタックオーバーフローの答えが示唆するように、私はこれを 'onResume()'に持っていました。それは99%の時間で動作し、デバッグが難しくなりました。回避策として、このコードを数秒ごとに実行する必要がありませんでした。 – user1516661

+0

@ user1516661私は最初に 'onResume()'メソッドに置くと言っている人達と混乱しました:) – RominaV

関連する問題