Heim  >  Artikel  >  php教程  >  Die ultimative Lösung für das Problem eines kurzen schwarzen oder weißen Bildschirms beim Aufrufen der Startseite

Die ultimative Lösung für das Problem eines kurzen schwarzen oder weißen Bildschirms beim Aufrufen der Startseite

坏嘻嘻
坏嘻嘻Original
2018-09-14 15:13:155030Durchsuche

irontec hat ein Open-Source-Projekt PHP für Android (PFA) gestartet, um PHP auf die Android-Plattform zu bringen. Jetzt stellen wir es vor.

Problembeschreibung

Bei der Android-Projektentwicklung erscheint der Bildschirm beim Starten der App eine Zeit lang weiß Oder der Bildschirm wird schwarz und die Dauer variiert je nach Gerät. Es wirkt sich stark auf die Benutzererfahrung aus, daher ist es für uns notwendig, es zu optimieren.

Der Grund für das Schwarz-Weiß-Bildschirmproblem

Wenn wir eine APP starten und die Anwendung, zu der die App gehört, nicht im Hintergrund läuft, wird das System erstellt zunächst einen neuen Prozess zum Ausführen der APP, die Erstellung und Initialisierung des Prozesses dauert jedoch einige Zeit. Wenn die Initialisierungszeit zu lang ist, erfolgt möglicherweise keine Bewegung auf dem Bildschirm, und der Benutzer wird nachdenken Stellen Sie fest, dass die App nicht angeklickt wurde, und klicken Sie erneut auf das Anwendungssymbol, was die Benutzererfahrung erheblich beeinträchtigt. Daher muss Android rechtzeitig auf den Klick des Benutzers reagieren, um die Aktion zu starten Vorschaufenster), das aussieht, als ob die App gestartet wurde, der Dateninhalt jedoch noch nicht initialisiert wurde.

StartingWindow wird im Allgemeinen angezeigt, bevor der Anwendungsprozess erfolgreich erstellt und initialisiert wurde. Der Zweck besteht darin, dem Benutzer mitzuteilen, dass das System den Vorgang akzeptiert hat und reagiert. Nachdem die Programminitialisierung abgeschlossen ist, wird die Benutzeroberfläche der Startseite angezeigt und das Fenster wird gleichzeitig entfernt, es handelt sich also nur um ein temporäres Fenster.

Im Allgemeinen legen wir das Thema für Anwendung und Aktivität fest und das System initialisiert das Startfenster entsprechend dem festgelegten Thema. Die oberste Ebene des Fensterlayouts ist DecorView. StartingWindow zeigt eine leere DecorView an, aber die in der Aktivität festgelegte Hintergrundfarbe wird auf die DecorView angewendet. Wenn die Aktivität kein Design angibt, wird das Design der Anwendung verwendet (Das Anwendungssystem erfordert, dass das Design festgelegt wird.) Unsere Einstellungen im Stil bestimmen wie folgt, ob ein weißer oder ein schwarzer Bildschirm angezeigt wird:

<application        // ....
        android:theme="@style/AppTheme">

Wenn unser AppTheme das Light-Design wie unten definiert verwendet, wird das Die Anzeige wird ein weißer Bildschirm sein, andernfalls ist die Anzeige ein schwarzer Bildschirm:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

Lösung

Erstellen Sie zunächst eine neue Ebene -list unter res/drawable, mit einem zufälligen Namen, wie zum Beispiel „splash.xml“:
Referenz zum Schreiben der Ebenenliste: https://www.jb51.net/article/130850.htm

<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 背景颜色 -->
    <item android:drawable="@color/white" />

    <item>
        <!-- 图片 -->
        <bitmap            android:gravity="center"
            android:src="@drawable/wel_page" />
    </item></layer-list>

Jeder kann eine Ebenenliste schreiben. Oben ist die Hintergrundfarbe und unten ist ein Bild. Dieses Bild kann ein Vollbild oder ein kleines Bild sein. Wenn es sich um ein Vollbildbild handelt, muss die obige Farbe nicht festgelegt werden. Wenn es sich um ein kleines Bild handelt, müssen Sie die Farbe und die Position des Bildes angeben.

2. Legen Sie den Fensterhintergrund für das Thema fest: Sie können unsere Ebenenliste oben als Hintergrund verwenden und natürlich auch ein Vollbildbild festlegen.

<style name="SplashTheme" parent="AppBaseTheme">
    <!-- 欢迎页背景引用刚才写好的 -->
    <item name="android:windowBackground">@drawable/splash</item>
    <item name="android:windowFullscreen">true</item>
    <!-- <item name="android:windowIsTranslucent">true</item> --> <!-- 透明背景不要了 --></style>

3. Definieren Sie das Thema von SplashActivity als SplashTheme in AndroidManifest.xml: Beachten Sie hier, dass das von der Anwendung verwendete Thema AppTheme und das von SplashActivity verwendete Thema SplashTheme ist. Dies hat zur Folge, dass andere Aktivitäten das AppTheme-Design verwenden, solange SplashActivity das StartAppTheme-Design verwendet.

<activity android:name=".SplashActivity"
    android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter></activity>

4. Um SplashActivity zu implementieren, starten Sie einfach Ihre MainActivity direkt in onCreate(), ohne setContentView():

public class SplashActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // setContentView(R.layout.activity_load_sir);
        new Handler().postDelayed(new Runnable() {            @Override
            public void run() {
                Intent intent = new Intent(SplashActivity.this,MainActivity.class);
                startActivity(intent);
                finish();
            }
        }, 3000);
    }
}

Extension

im zweiten Schritt oben Im Artikel heißt es, dass Sie den Hintergrund direkt auf ein Bild festlegen können, ohne die Ebenenliste zu verwenden. Es wird jedoch nicht empfohlen, ein PNG-Bild direkt als Hintergrund zu verwenden, da die Bildschirmgröße zu groß ist und die Bildanzeige verformt wird Möglich ist, dass wir auch ein 9. PNG-Hintergrundbild verwenden können, aber es gibt einen Fehler bei der Verwendung von Bildern, da das Splash-Bild in das Thema geschrieben wird und der Speicher des Bildes nicht freigegeben werden kann -list spart Speicher.

Verwandte Empfehlungen:

PHP für Android-Projekt

Android Animation_html/css_WEB-ITnose

Das obige ist der detaillierte Inhalt vonDie ultimative Lösung für das Problem eines kurzen schwarzen oder weißen Bildschirms beim Aufrufen der Startseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn