android — Qt Quick Control 2 Splash Screen

Я занимаюсь разработкой мобильного приложения с использованием Qt Quick Controls 2 и хотел бы отображать заставку во время инициализации приложения. В настоящее время это то, что видит пользователь при запуске приложения:

  1. Темный фон с названием приложения в качестве заголовка.
  2. Пустой белый фон.
  3. Окно приложения.

В таком порядке для смартфона Android 6 Marshmallow. Если я добавлю заставку в окно приложения, возможно, в виде стека, а затем перейду к фактическому содержимому при его инициализации, (1) и (2) все равно останутся, верно? Можно ли как-нибудь сказать Qt отображать заставку вместо (1) и (2) или хотя бы вместо (1)?

1

Решение

Первый в _yourProject_/android/res/drawable создать splash.xml файл:

<?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="#353535"/>
</shape>
</item>
<item>
<bitmap android:src="@drawable/icon" android:gravity="center" />
</item>
</layer-list>

Это устанавливает цвет фона заставки и значок, который будет центрироваться на экране.

Затем в /android/res/values создать theme.xml файл:

<?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>

Затем в файле манифеста Android, на линии <activity android:configChanges= добавлять android:theme="@style/AppTheme" После настройки ярлыка прокрутите вниз до <!-- Splash screen --> раздел и раскомментируйте и измените строку:

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

Заменить #353535 цвет, какой бы ни был цвет окна вашего приложения, для плавного перехода. Изображение не является обязательным.

Я только что проверил, и это работает. Возможно, кто-то еще сможет предоставить решение для iOS.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]