Qt for Android Splash启动页最简单延时关闭
前言
隨著 Qt 版本的更新,對(duì)移動(dòng)端的開發(fā)接口也越來(lái)越多,這給 Qt 開發(fā)移動(dòng)端提供了極大的便利,也越來(lái)越愛上了這種跨平臺(tái)的開發(fā)。今天要講的是關(guān)于 Qt for Android 啟動(dòng)頁(yè)顯示的問題,首先,軟件在啟動(dòng)時(shí)初始化過(guò)程會(huì)有一個(gè)等待時(shí)間,如果沒有splash啟動(dòng)頁(yè)的話,就不會(huì)在初始化的過(guò)程中呈現(xiàn)白屏(或黑屏),這樣用戶體驗(yàn)會(huì)很差,所以 splash 的作用就體現(xiàn)出來(lái)了。隨之又帶來(lái)一個(gè)問題,如果軟件初始化的時(shí)間很短,那么添加啟動(dòng)頁(yè)后打開軟件就會(huì)出現(xiàn)啟動(dòng)頁(yè)圖片一閃而過(guò)的現(xiàn)象,所以這種情況下,為了讓用戶體驗(yàn)更好,就需要手動(dòng)添加啟動(dòng)頁(yè)延時(shí)關(guān)閉的效果。另外,啟動(dòng)頁(yè)還有其他用途,比如可以展示app 的 logo 或者軟件的其他信息,當(dāng)然還可以顯示廣告,這是幾乎所有 app都有啟動(dòng)頁(yè)的原因。
正文
網(wǎng)上有很多介紹都是關(guān)于 Android 原生開發(fā)上關(guān)于啟動(dòng)頁(yè)的配置說(shuō)明,大體思路都是自己創(chuàng)建一個(gè)啟動(dòng)頁(yè)面,然后定定時(shí)器延時(shí)顯示,幾乎很少看到用 Qt 開發(fā)Android如何配置,對(duì)于一個(gè)并不太熟悉 Android原生開發(fā)者以及剛接觸用 Qt 跨平臺(tái)開發(fā)者來(lái)說(shuō)無(wú)疑是一個(gè)比較難的問題,在研究過(guò)很多 Android 原生配置以及 Qt 的官方文檔后終于找到了最簡(jiǎn)單的解決方案。在此分享給正在Qt 跨平臺(tái)開發(fā) Android的道路上艱難前行的小伙伴們。
環(huán)境
我這里使用Qt 最新版 Qt5.11.0,Android SDK 使用 android-26 。
創(chuàng)建項(xiàng)目
首先創(chuàng)建一個(gè) Qt 工程(我這里用 QML),導(dǎo)入一個(gè)模板。創(chuàng)建后結(jié)構(gòu)如下:
然后打開“項(xiàng)目”
Build Android APK 項(xiàng)打開詳情
創(chuàng)建模板
創(chuàng)建后結(jié)構(gòu)如下:
設(shè)置Splash啟動(dòng)頁(yè)
打開 AndroidManifest.xml文件,切換到編輯模式
然后找到以下地方
這里原本是注釋掉的,將這兩句放開。
注意,在 Qt5.9及以下版本是沒有下面這句話的
如果將這里的 value 設(shè)置為 true,那么啟動(dòng)頁(yè)將會(huì)一直顯示,不會(huì)跳轉(zhuǎn)到主程序界面中。這是要做啟動(dòng)頁(yè)延時(shí)顯示最關(guān)鍵的一句。
OK,將這兩句注釋打開過(guò)后,由于這里啟動(dòng)頁(yè)是引用 drawable 下的圖片,所以需要drawable下面放一張準(zhǔn)備好的啟動(dòng)頁(yè)圖片。
打開程序目錄, 找到剛剛創(chuàng)建的 android 目錄,然后在 res 目錄下創(chuàng)建一個(gè) drawable 文件夾,并將啟動(dòng)頁(yè)圖片放到文件夾中,如圖:
接下來(lái)編譯到真機(jī)中,這時(shí)候會(huì)發(fā)現(xiàn),程序啟動(dòng)后會(huì)一直停留在啟動(dòng)頁(yè),如圖:
(我這里是隨便找了一張啟動(dòng)頁(yè)圖片)
這是因?yàn)榍懊嫣岬降?#xff0c;設(shè)置了下面這句
啟動(dòng)頁(yè)延時(shí)展示
上面已經(jīng)提到,如果設(shè)置了android.app.splash_screen_sticky為 true,啟動(dòng)頁(yè)會(huì)一直停留顯示,如果設(shè)置為 false,那么啟動(dòng)頁(yè)將會(huì)一閃而過(guò)(程序很快就加載完成),那么如果要做啟動(dòng)頁(yè)延時(shí)展示,就需要在上面的程序基礎(chǔ)上添加一句話。
打開 main文件,在創(chuàng)建 qml 之前加上
這里為了演示,我延時(shí)顯示了三秒鐘,三秒過(guò)后關(guān)閉啟動(dòng)頁(yè)畫面。QtAndroid在5.10新增了一個(gè)接口,hideSplashScreen,該接口的作用就是為了隱藏啟動(dòng)頁(yè),并且可以傳參數(shù),來(lái)設(shè)定啟動(dòng)頁(yè)漸變隱藏的時(shí)間。
這就很輕松的解決了啟動(dòng)頁(yè)延時(shí)展示的效果。
(由于android 模擬器不可用,手機(jī)上也不方便做視頻錄制,所以就不上傳演示效果了,有興趣的可以下載源碼看效果)
注:關(guān)于啟動(dòng)的瞬間有白屏或黑屏的情況,后期會(huì)專門寫博客介紹。
源碼在這里
總結(jié)
以上是生活随笔為你收集整理的Qt for Android Splash启动页最简单延时关闭的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄金法则之《终身学习》
- 下一篇: Qt for Android解决启动时黑