webentwicklung-frage-antwort-db.com.de

Vollbild-Aktivität verwenden

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

Logcat und Spielcode

12
Nabeel abbas

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

30
Michele Lacorte

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>
25
t-kashima

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.

4
RominaV

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 ...

2
KAMAL VERMA

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

2

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.

0
tk1505