Ich mache ein einfaches Spiel und habe bisher die Blank-Aktivität verwendet. Jetzt möchte ich, dass es den gesamten Bildschirm abdeckt. Muss ich das Ganze mithilfe einer FullScreen-Aktivität neu codieren? Ich habe versucht, online nach etwas zu suchen, aber alles, was mir begegnete, hatte folgendes hinzugefügt:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Dadurch stürzt die App ab, sobald sie auf einem Gerät gestartet wird. SO Bitte, wenn mir jemand meinen Fehler zeigen kann.
Hier ist ein Link zur Logcat-Ausgabe sowie zum Spielcode
Versuchen Sie Folgendes, um die Aktivität auf Vollbild einzustellen:
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);
Sie können diesen Code in die onCreate()
-Methode einfügen
Sie können folgenden Code ausprobieren.
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>
Keine der obigen Antworten funktioniert korrekt. Sie haben Probleme mit der onResume()
-Methode und zeigen dann die Softkeys an.
Der richtige Weg ist ziemlich unkompliziert. Überschreiben Sie diese Methode in der Activity
, die Vollbild sein sollte:
@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);
}
}
Das ist, wenn Sie "Sticky Immersion" wollen. Sehen Sie sich das vollständige Dokument hier an und entscheiden Sie, was für Ihren Anwendungsfall besser ist.
In AndroidManifest.xml Datei
<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>
und Ihre Klasse sollte Activity nicht AppCompatActivity erweitern ...
Was Sie wollten, heißt Immersive-Modus, der auf Android 4.4 und höher funktioniert
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);
Offizielle Dokumentation finden Sie hier
Sie können einfach zu Ihrer Manifestdatei gehen und Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
zu Ihrem <activity />
- oder <application />
-Tag in Ihrer Manifestdatei hinzufügen, je nach Ihren Anforderungen.