中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android應用啟動白屏處理的方法是什么

發布時間:2023-02-27 16:41:55 來源:億速云 閱讀:128 作者:iii 欄目:開發技術

本篇內容介紹了“Android應用啟動白屏處理的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    正文

    相信大家一定遇到過某些App在手機桌面打開時會出現短暫或者幾秒鐘的白屏情況吧,沒錯那是應用程序啟動后系統默認的背景色,此時應用的第一個Activity還未被加載出來,所以不管怎么設置第一個Activity的背景色都毫無作用。首先先聊一聊冷啟動和熱啟動:

    • 冷啟動

    殺掉App,此時的App進程不存在于后臺,啟動時從Logo頁面開始。

    • 熱啟動

    App處于后臺,進程未被殺死,重新進入前臺時頁面保持上一次頁面,不會重新啟動。

    所以,我們此次所講的屬于冷啟動過程,當應用程序代碼量小、業務邏輯少、體積小時,App啟動還是比較快,白屏時間可以忽略不計。一旦初始化工具過多,首頁業務邏輯過多時啟動速度會嚴重變慢,此時的白屏時間會越來越長,給人一種極差的體驗。我們需要做的就是在白屏時間盡可能快速的展示Logo等圖標,讓它成為一個過渡,待應用程序準備好后跳轉到相應頁面以提高用戶體驗。

    配置一個SplashActivity

    首先,需要配置一個SplashActivity(應用展示的第一個Activity)的主題

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 將splash圖片設置在這,這樣這張圖片取代白屏 -->
        <item name="android:windowBackground">@drawable/logo_drawable</item>
        <item name="android:windowAnimationStyle">@style/notAnimation</item>
        <!--將頂部狀態欄設置為透明,并將界面內容布局上邊界上提至狀態欄頂部-->
        <item name="android:windowTranslucentStatus">true</item>
        <!--如果有底部虛擬導航欄,則將底部虛擬導航欄設置為透明,并將界面內容布局下邊界下沉至虛擬導航欄底部-->
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">true</item>
    </style>

    其中windowBackground是我們本次重點配置,windowAnimationStyle是取消頁面的一些動畫效果,一般首頁我們讓它無動畫,其他設置根據自己情況設置即可。

    讓我們來看看logo_drawable

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <color android:color="#ffffffff"/>
        </item>
        <item
            android:top="208dp"
            android:bottom="453dp">
            <bitmap
                android:gravity="center"
                android:src="@mipmap/ic_logo" />
        </item>
    </layer-list>

    白色背景上疊加一個bitmap,這里需要注意的是bitmap外層的item標簽一定要根據設計稿配置好上下邊距,否則運行App后的效果會被鋪滿屏幕。

    然后我們將上面的主題配置到activity中,此時SplashActivity的布局文件中可以什么都不寫,因為該主題就相當于背景,如果此處編寫頁面可能會和背景logo重合,僅需要編寫一些邏輯和跳轉處理。

    <activity
        android:name=".ui.splash.SplashActivity"
        android:configChanges="orientation|screenSize"
        android:exported="true"
        android:launchMode="singleTop"
        android:screenOrientation="portrait"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    至此,再次運行打開App發現,幾乎點開就是我們配置的logo,完美處理白屏問題。

    注意:

    如果項目使用了UI適配的三方庫,例如androidAutoSize,一定記得根據文檔處理放棄啟動頁適配,否則運行出來的效果也是不如意。

    “Android應用啟動白屏處理的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    镇江市| 曲周县| 涟水县| 恩施市| 安陆市| 崇阳县| 吴江市| 湟源县| 辽宁省| 西丰县| 辛集市| 合作市| 永春县| 海晏县| 交城县| 鹤壁市| 正宁县| 九台市| 济宁市| 新和县| 凉城县| 金湖县| 福鼎市| 潜江市| 连平县| 和平县| 津市市| 嘉禾县| 三江| 中阳县| 军事| 读书| 太白县| 富蕴县| 高雄县| 邮箱| 永川市| 宁乡县| 天气| 夏邑县| 馆陶县|