wake-up-neo.com

Android: Erstellen einer Vollbildanwendung

Was ist die einfachste Änderung, die ich an einer neuen leeren Aktivität vornehmen kann, die von der neuesten Version von Android Studio erstellt wurde, damit die App im Vollbildmodus angezeigt wird?

Ich möchte eine Vollbild-Android-Anwendung erstellen. Ich arbeite mit Android Studio . Dieser Beitrag schlägt vor, dass ich eine Zeile wie ...

Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

... in die Datei AndroidManifest.xml, wie unten gezeigt:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
            package="com.lexogram.james.blackslate" >

            <application
                    Android:allowBackup="true"
                    Android:icon="@drawable/ic_launcher"
                    Android:label="@string/app_name"
                    Android:theme="@style/AppTheme" >
                    <activity
                            Android:name="com.lexogram.james.blackslate.MainActivity"
                            Android:label="@string/app_name"
                            Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
                            <intent-filter>
                                    <action Android:name="Android.intent.action.MAIN" />

                                    <category Android:name="Android.intent.category.LAUNCHER" />
                            </intent-filter>
                    </activity>
            </application>

    </manifest>

Wenn ich dies tue, wird die App kompiliert, stürzt jedoch beim Start ab. Wenn ich die Zeile entferne, läuft die App einwandfrei, jedoch mit der Aktionsleiste und einer Titelleiste, wie auch von anderen Benutzern angegeben.

Dies ist mein erster Versuch, eine Android-App zu erstellen. Daher hat sich meine App kaum vom ursprünglichen Hello-World-Beispiel geändert.

EDIT: Ich habe ein neues Projekt erstellt und gerade dieses geändert. Hier ist ein Auszug aus dem Fehlerprotokoll:

FATAL EXCEPTION: main
    Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lexogram.james.test/com.lexogram.james.test.MainActivity}: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2669)...

HINWEIS: Ich teste auf einem alten Samsung SGH-T499Y mit Android 2.2 (Froyo).

33
James Newton

Dieses Problem tritt auf, weil die Aktivität, auf die Sie den Code Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen"> anwenden möchten, ActionBarActivity erweitert, wodurch das AppCompat-Design angewendet werden muss.

Erweitern Sie Ihre Aktivität von Activity anstatt von ActionBarActivity

Möglicherweise müssen Sie Ihre Java-Klasse entsprechend anpassen.

Wenn Sie auch die Statusleiste entfernen möchten, verwenden Sie diese vor setContentView(layout) in der onCreateView-Methode

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
72
Rohit5k2

Fügen Sie einfach das folgende Attribut zu Ihrem aktuellen Thema hinzu:

<item name="Android:windowFullscreen">true</item>

Zum Beispiel:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/orange</item>
    <item name="colorPrimaryDark">@Android:color/holo_orange_dark</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowFullscreen">true</item>
</style>
20
Asaf Pinhassi

tun Sie dies einfach in Ihrer Manifestdatei in Ihrem Aktivitäts-Tag

Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
14
user3637297

in meinem Fall funktioniert alles gut. Siehe in logcat. Vielleicht zeigt logcat etwas, das Ihnen helfen kann, Ihr Problem zu lösen 

Jedenfalls können Sie es programmgesteuert versuchen:

 public class ActivityName extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // remove title
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.main);
        }
 }
8
DMan

Antwort aktualisieren Ich habe Android:windowIsTranslucent hinzugefügt, falls Sie zu Beginn der Aktivität einen weißen Bildschirm haben 

erstelle einfach einen neuen Style in values ​​/ styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- to hide white screen in start of window -->
    <item name="Android:windowIsTranslucent">true</item>
    </style>

</resources>

fügen Sie Ihrer Aktivität aus Ihrem AndroidManifest.xml einen Stil hinzu 

Android:theme="@style/AppTheme"

so sein

<activity Android:name=".Splash"
            Android:theme="@style/AppTheme">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
7
Mina Fawzy

In onCreate call

requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);
2
Xar E Ahmer

Fügen Sie laut dieses Dokument den folgenden Code zu onCreate hinzu

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

Ich hatte vor kurzem genau das gleiche Problem und profitierte auch von dem folgenden Beitrag (zusätzlich zu der oben genannten Lösung von Rohit5k2):

https://bsgconsultancy.wordpress.com/2015/09/13/convert-any-website-into-Android-application-by-using-Android-studio/

In Schritt 3 erweitert MainActivityActivity anstelle von ActionBarActivity (wie von Rohit5k2 erwähnt). Es ist auch sehr wichtig, die Designelemente NoTitleBar und Fullscreen an die richtigen Stellen in der AndroidManifest.xml-Datei zu setzen (siehe Schritt 4).

0
aparkhills

Sie können die folgenden Codes verwenden, um eine vollständige Seite in Android zu erhalten

Schritt 1: Erstellen Sie ein Thema im Abschnitt "styles.xml"

<style name="AppTheme.Fullscreen" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Schritt 2: Hinzufügen eines Themas in AndroidManifest.xml

<activity
Android:name=“.Activity”
Android:theme="@style/AppTheme.Fullscreen"/>

Schritt 3: Java-Code-Abschnitt

Beispielsweise können Sie der onCreate () - Methode folgende Codes hinzufügen.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
0
Matin Soleimani