91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

    昭苏县| 贵定县| 丹寨县| 深圳市| 沙河市| 东至县| 丰都县| 镇雄县| 红原县| 灵台县| 会同县| 宿松县| 文化| 敦煌市| 保康县| 嵊泗县| 文安县| 黎城县| 应城市| 唐山市| 揭阳市| 饶阳县| 宁化县| 嘉义县| 茌平县| 九龙坡区| 东明县| 漯河市| 许昌县| 许昌市| 平阴县| 岳普湖县| 神池县| 鸡泽县| 恭城| 砚山县| 来凤县| 东宁县| 清水河县| 青神县| 嫩江县|