Qt for Android Splash启动页延时关闭

版权声明:如需转载,请告知博主并声明出处 https://blog.csdn.net/CLinuxF/article/details/88826827

前言

此篇博客可以对接我上一篇博客Qt for Android 去掉Qt原生启动界面或短暂黑屏(或白屏)的问题,观看顺序不分先后,最好两篇要一起看。
好了,上篇博客已经说到有遗留的问题就是启动页面时间太短了,导致看不顺眼,可能一闪就过去进入了主页面,不符合我们平常的业务需求。

问题

主要解决问题就是启动页面时间的设置,老生常谈,我先说下我使用的环境,还是跟上一篇博客一样,再次啰嗦一下:qt版本是最新版本Qt5.12.2,使用的是Android_for_arm64_v8a版本
说明一下。以往在5.9版本要解决启动页面延迟,两种方案:

  1. 写java代码延迟安卓启动页面
  2. 使用Qt自定义启动页面,而不使用安卓启动页面

无论是1还是2,都很麻烦,所以这次官方给出的5.12版本解决了这个难题,直接在QtAndroid给出了方法设置,还是相当人性化的啊。
搜索Qt文档如下:
在这里插入图片描述
看加入了hideSplashScreen方法,以往是木有的哦,这个方法可以是设置延迟启动页面的时间,第一个是直接隐藏,不建议使用,除非自己使用Qt实现启动页,第二种就是我们今天要说明使用的。

解决方案

已经知道了有这个方法可以设置,但是还需要其他的操作来辅助配合,否则还是无用啊。
让我们转到AndroidManifest.xml,找到以下位置:如下图:(如何生成AndroidManifest.xml看我前言提到的对应博客,这里就不罗嗦了)
在这里插入图片描述
这里原本是注释掉的,将这两句放开。
注意,在 Qt5.9及以下版本是没有下面这句话的

<!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/-->

如果将这里的 value 设置为 true,那么启动页将会一直显示,不会跳转到主程序界面中。这是要做启动页延时显示最关键的一句。

OK,将这两句注释打开过后,由于这里启动页是引用 drawable 下的图片,所以需要drawable下面放一张准备好的启动页图片。
打开程序目录, 找到创建的 android 目录,然后在 res 目录下创建一个 drawable-* 文件夹,并将启动页图片放到文件夹中,如图:

在这里插入图片描述
接下来编译到真机中,这时候会发现,程序启动后会一直停留在启动页,如图:
在这里插入图片描述
网上随便Copy的一张图片,所以非常完美

这是因为前面提到的,设置了下面这句
在这里插入图片描述

启动页延时展示,是时候展示真正的技术了

上面已经提到,如果设置了android.app.splash_screen_sticky为 true,启动页会一直停留显示,如果设置为 false,那么启动页将会一闪而过(程序很快就加载完成),那么如果要做启动页延时展示,就需要在上面的程序基础上添加一句话。
打开 main文件,加上如下一句话:

QTimer::singleShot(3000,[=](){
    QtAndroid::hideSplashScreen(500);
});

如下图:
在这里插入图片描述
放到哪里都一样,位置没有严格要求。

猜你喜欢

转载自blog.csdn.net/CLinuxF/article/details/88826827