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