Implementación de una pantalla de bienvenida con Qt Quick en Android
Muestra cómo configurar una pantalla de bienvenida con Qt Quick View en Android.

Este sencillo ejemplo demuestra el uso de una vista QML como pantalla de bienvenida Qt. No se utilizan transiciones adicionales. En este ejemplo, la pantalla de bienvenida por defecto, que se introdujo en Android 12, está oculta. Cuando la aplicación se inicia, la pantalla de inicio se muestra durante dos segundos, después de lo cual la vista principal se muestra sin transición.
Este ejemplo forma parte de una serie de dos ejemplos similares que muestran la pantalla de inicio. Este utiliza QML view, el otro utiliza AndroidManifest flags.
Usando la pantalla de bienvenida Qt Quick en Android
Para utilizar una vista QML como pantalla de bienvenida, se define una vista y se añaden algunos elementos específicos para la funcionalidad de la pantalla de bienvenida.
Window { id: splash color: "#2CDE85" title: qsTr("Splash Window") modality: Qt.ApplicationModal flags: Qt.SplashScreen visible: true property int timeoutInterval: 2000 signal timeout
modality: Qt.ApplicationModalestablece la vista modal.flags: Qt.SplashScreenoculta la barra de título.property int timeoutInterval: 2000establece el tiempo de visibilidad de la vista.
Carga de la vista principal
Loader { id: mainLoader source: "Main.qml"
El temporizador llama a la función de salida en el tiempo de espera para cambiar de la pantalla de inicio a la vista principal. Cualquier posible animación de salida se iniciaría aquí.
function exit() { mainLoader.item.show(); splash.visible = false splash.timeout() }
El temporizador deja un tiempo adecuado para que aparezca la pantalla de inicio. Esto puede ser usado en conjunto con la señal Loader.loaded() o posiblemente con otra señal originada en la implementación de la aplicación cuando la aplicación está lista para ser mostrada.
Timer { interval: splash.timeoutInterval; running: splash.visible; repeat: false onTriggered: { splash.exit() } }
En el lanzamiento, la pantalla de bienvenida por defecto se muestra antes de que se muestre la primera vista de la aplicación. Ver Android Splash screens para las instrucciones sobre cómo modificarla.
Por defecto, Android utiliza el icono de la aplicación para la pantalla de bienvenida. En una aplicación Qt para Android, esto puede ser modificado para ser utilizado como la pantalla de inicio de la aplicación o puede ser combinado con la pantalla de inicio de Qt.
Ocultar la pantalla de inicio nativa de Android
Para mantener la experiencia de usuario de lanzamiento consistente entre plataformas, puede ser necesario ocultar la pantalla de inicio de Android. Para ello, defina un tema translúcido que oculte efectivamente la pantalla de inicio de Android.
<?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>Sin embargo, hay un problema. Los cambios de orientación dejan de funcionar si tenemos un tema translúcido. Esto es causado por el hecho de que la vista de Android obtiene su orientación de la vista subyacente, por lo general se trata de un cajón de aplicación que no cambia su orientación. Y debido a que el tema no se puede cambiar después de que la vista de actividad se establece, terminamos con una aplicación atrapada en una orientación.
Como solución podemos crear una Actividad desechable con un tema translúcido para la pantalla de inicio de Android. Tan pronto como sea posible lanzamos otra Actividad, que tiene todas las campanas y silbatos que nuestra aplicación requiere.
<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>Ahora la pantalla de bienvenida nativa de Android no se muestra, y lanzamos la QtActivity, que muestra la pantalla de bienvenida definida en QML. Para lanzar la pantalla de bienvenida QML, debemos anular el método onCreate de la Android Activity y utilizar un Intent para lanzar la QtActivity.
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;
}
});
}
}Finalmente, la pantalla de bienvenida QML abre la vista principal, que en este ejemplo contiene una única Vista con un botón de cierre.
© 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.