Evgenij LegotskojMarch 9, 2020, 7:41 p.m.

Android and QML - Adding Splash Screen

Content

Let me show you a small example of adding Splash Screen to an application written in Qt. In this case, the Splash Screen will be added to the application using the Android ecosystem, that is, through its manifest. Adding a manifest has been described here.

One option for creating a Splash Screen in Qt/QML is to write code in QML/C++, but the disadvantage of this way is that you will see a black screen of the application until the application is fully loaded. Therefore, you must load the application using Java, through its manifest.

Let's make such a splash

The structure of the project will look as follows

main.qml

I'll start with the most boring - this is the content of the QML file of the application, which we will expect to download when the application starts. Nothing remarkable, the usual "Hello World"

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    id: window
    visible: true
    width: 480
    height: 640
    title: qsTr("Hello World")

    Text {
        text: qsTr("Splash Screen")
        anchors.centerIn: parent
    }
}

AndroidManifest.xml

And now we’ll fix the manifest in which you need to specify the resource file of the application theme, which will be called apptheme.xml

<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" 
          android:theme="@style/AppTheme" 
          android:name="org.qtproject.qt5.android.bindings.QtActivity" 
          android:label="-- %%INSERT_APP_NAME%% --" 
          android:screenOrientation="unspecified" 
          android:launchMode="singleTop">

Next, add information about the splash screen file

<!-- Splash screen -->
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>
<!-- Splash screen -->

These files must be added to the res/values and res/drawable directories

splash.xml

In the Splash Screen there is an application icon, it is also located in the drawable directory.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#FFFFFFFF"/>
        </shape>
    </item>
    <item>
         <bitmap android:src="@drawable/icon"
        android:gravity="center" />
    </item>
</layer-list>

apptheme.xml

Here we disable the title bar, and also set the background of the application window.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
    </style>
</resources>

Result

As a result, this will be enough to get the application with Splash Screen.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
- company blog
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
AE

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
f

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:70points,
  • Rating points1
OP

C++ - Test 006. Enumerations

  • Result:40points,
  • Rating points-8
Last comments

Django - Tutorial 037. How to add authentication through social networks. Google+

Какую ссылку в гулге юзать для редиректа oauth2?
t

Qt/C++ - Lesson 013. QMenu – How to work with context menu in QTableView?

Добрый день, в строке 49 файла mainwindow.cpp создаётся меню и оно будет создаваться каждый раз при его вызове. Т.е. каждый раз будет выделяться память под QMenu. Это же утечка памяти или Q…
TF

Qt/C++ - Lesson 054. Reading data from a CSV file, and their representation via QStandardItemModel

А если мне надо данными из файла подписать оси x и y и построить график как это сделать?

QML - Lesson 018. Loader in QML Qt – The working with the dynamic components

Лично для меня loader - это компонень, который загружает какую-то часть внутри окна, поэтому с этой точки зрения я бы не стал рассматривать использование loader лоя открытия окон, только для зап…
KF

QML - Lesson 018. Loader in QML Qt – The working with the dynamic components

добрый день, грамотно ли использовать loader для загрузки небольших диалоговых окон по клику из меню? и если да, то возникает проблема: загрузили первое диалоговое окно, потом его закрыли, а отк…
Now discuss on the forum

Как в QML поменять цвет кнопки Button?

Спасибо, а если дописать так, то еще и фон меняется Button { id: page0Button0 y: parent.height * 0.16 width: parent.width * 0.3 height: parent.height * 0.0…

Qml ListView ComboBox

добрый, можете в делегате обьявить переменную, в которую будет писать комбобокс свое значение. а потом по индексу модели дергать данное значение, ну или непосредственно дергать сам комбобокс по …

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.
IP

Как совместить таблицу и дерево в Qt

Необходимо использовать виджет QTreeView, для него необходимо сделать соответствующую модель. Примеры есть в самом Qt
K

Как поменять шаг оси с числового формата на текстовый

Добрый день. Только начинаю знакомство с Qt, а именно с библиотекой QCustomPlot. Столкнулся с такой проблемой - не знаю как поменять оси с числового на текстовый формат как на скрине. …
About
Services
© EVILEG 2015-2021
Recommend hosting TIMEWEB