Implementierung eines Begrüßungsbildschirms mit „ Qt Quick “ auf Android
Hier wird gezeigt, wie man einen Startbildschirm mit einer „ Qt Quick View“ unter Android einrichtet.

Dieses einfache Beispiel veranschaulicht die Verwendung einer Qml-Ansicht als Qt-Startbildschirm. Es werden keine zusätzlichen Übergänge verwendet. In diesem Beispiel wird der in Android 12 eingeführte Standard-Startbildschirm ausgeblendet. Beim Start der Anwendung wird der Startbildschirm zwei Sekunden lang angezeigt, danach wird die Hauptansicht ohne Übergang eingeblendet.
Dieses Beispiel ist Teil einer Reihe von zwei ähnlichen Beispielen zur Veranschaulichung von Startbildschirmen. In diesem Beispiel wird eine QML-Ansicht verwendet, im anderen Beispiel AndroidManifest-Flags.
Verwendung der „ Qt Quick “-Startbildschirmfunktion unter Android
Um eine QML-Ansicht als Startbildschirm zu verwenden, definieren Sie eine Ansicht und fügen einige Elemente hinzu, die für die Startbildschirm-Funktionalität spezifisch sind.
Window {
id: splash
color: "#2CDE85"
title: qsTr("Splash Window")
modality: Qt.ApplicationModal
flags: Qt.SplashScreen
visible: true
property int timeoutInterval: 2000
signal timeoutmodality: Qt.ApplicationModalLegt fest, dass die Ansicht modal ist.flags: Qt.SplashScreenblendet die Titelleiste aus.property int timeoutInterval: 2000legt die Sichtbarkeitsdauer der Ansicht fest.
Laden der Hauptansicht
Loader {
id: mainLoader
source: "Main.qml"Der Timer ruft bei Ablauf der Zeit die Funktion „exit“ auf, um vom Startbildschirm zur Hauptansicht zu wechseln. Eventuelle Ausblendanimationen würden hier ausgelöst.
function exit() {
mainLoader.item.show();
splash.visible = false
splash.timeout()
}Der Timer lässt ausreichend Zeit, damit der Startbildschirm angezeigt werden kann. Dies kann in Verbindung mit dem Signal „ Loader.loaded()“ oder möglicherweise mit einem anderen Signal aus der App-Implementierung genutzt werden, wenn die App bereit ist, angezeigt zu werden.
Timer {
interval: splash.timeoutInterval;
running: splash.visible;
repeat: false
onTriggered: {
splash.exit()
}
}Beim Start wird der Standard-Splash-Screen angezeigt, bevor die erste Ansicht der Anwendung erscheint. Anweisungen zum Anpassen des Startbildschirms finden Sie unter „Android-Startbildschirme “.
Standardmäßig verwendet Android das Anwendungssymbol als Startbildschirm. Bei einer Qt-für-Android-Anwendung kann dies so angepasst werden, dass es als Startbildschirm der App verwendet wird, oder es kann mit dem Qt-Startbildschirm kombiniert werden.
Ausblenden des nativen Android-Splash-Screens
Um die Benutzererfahrung beim Start plattformübergreifend einheitlich zu gestalten, kann es erforderlich sein, den Android-Startbildschirm auszublenden. Definieren Sie dazu ein halbtransparentes Design, das den Android-Startbildschirm effektiv ausblendet.
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="splashStartTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowIsTranslucent">true</item>
</style>
</resources>Es gibt jedoch ein Problem: Bei Verwendung eines durchscheinenden Themes funktionieren Orientierungsänderungen nicht mehr. Dies liegt daran, dass die Android-Ansicht ihre Ausrichtung von der darunterliegenden Ansicht erhält – in der Regel ist dies ein Anwendungsmenü, dessen Ausrichtung sich nicht ändert. Und da das Design nicht mehr geändert werden kann, nachdem die Activity-Ansicht festgelegt wurde, bleibt die Anwendung letztendlich in einer einzigen Ausrichtung hängen.
Als Workaround können wir eine temporäre Activity mit einem durchsichtigen Design für den Android-Startbildschirm erstellen. So bald wie möglich starten wir eine weitere Activity, die über alle Funktionen verfügt, die unsere Anwendung benötigt.
<activity
android:name=".SplashActivity"
android:exported="true"
android:label="QML Splash Screen Example"
android:theme="@style/splashStartTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>Nun wird der native Android-Startbildschirm nicht mehr angezeigt, und wir starten die QtActivity, die den in QML definierten Startbildschirm anzeigt. Um den QML-Startbildschirm zu starten, müssen wir die Methode ` onCreate ` der Android-Activity überschreiben und die QtActivity mithilfe eines `Intent` starten.
package io.qt.qmlsplashscreeninandroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.util.Log;
import android.content.Intent;
import android.view.ViewTreeObserver;
import org.qtproject.qt.android.bindings.QtActivity;
public class SplashActivity extends Activity {
private static final String TAG = "SplashActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set up an OnPreDrawListener to the root view.
final View content = findViewById(android.R.id.content);
content.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
Intent i = new Intent(SplashActivity.this, QtActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);
content.getViewTreeObserver().removeOnPreDrawListener(this);
finish();
return true;
}
});
}
}Schließlich öffnet der QML-Startbildschirm die Hauptansicht, die in diesem Beispiel nur eine einzige Ansicht mit einer Schaltfläche zum Schließen enthält.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.