冷启动优化闪屏页

目录

前言

1.在drawable界面创建splash_background.xml文件

2.创建style样式

3.把这种主题风格设置给启动页

总结


前言

市面上的有些App,点击App图标后,会出现白屏或者黑屏一段时间的问题。为什么会出现这种问题呢,其实在启动Acitivty的启动过程中,onCreate()方法并不是发生在窗口绘制的第一步,系统会在执行这个步骤之前,先绘制窗体,这时候onCreat()还没被执行,我们的setContentView(R.layout.activity_splash)就更不会被执行了,布局资源还没有被加载,这时系统就会使用当前Activity的主题默认背景色来展示。
我们可以给启动页设置上theme,设置上背景图片即可,但是有时背景图片过大也会在主线程解码造成耗时,这时我们可以不使用一个完整的图片来做启动页,而使用layer-list,背景色和图片叠加来减少解码的耗时。

1.在drawable界面创建splash_background.xml文件

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape>
            <solid android:color="@android:color/background_dark" />
        </shape>
    </item>

    <item
        android:width="20dp"
        android:height="20dp"
        android:gravity="center">
        <bitmap
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon">

        </bitmap>

    </item>

</layer-list>

2.创建style样式

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Launch_logo" parent="android:Theme.Black.NoTitleBar.Fullscreen">
        <item name="android:windowBackground">@drawable/splash_background</item>
        <item name="android:windowFullscreen">false</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

3.把这种主题风格设置给启动页

<activity
            android:name=".MainActivity"            android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|density|locale|fontScale|layoutDirection|mcc|mnc"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:theme="@style/Launch_logo">

总结

到这里我们就完成了将启动页的图片替换为drawable的方式,节省了启动页解码图片的时间,性能得到了较大的提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值