Android Tipsandroid 界面小技巧

写启动界面Splash的正确姿势,解决启动白屏

2016-01-25  本文已影响8932人  never615

从我学习写第一个android项目以来,我都是这样写着启动界面:


就在前两天我打开app的时候,我感觉启动界面的时间太长了,而且为什么会先白屏一下然后进入启动界面。很多app都有启动界面,也有很多app没有启动界面,但是我发现这些没有启动界面的app,当我点击桌面那个icon的时候,也会先白屏一下,然后进入主页。

然后我决定做两件事:

如何消灭白屏

  1. 删除启动界面的xml布局,删除setContentView。
  2. 在res/drawable里写一个这种玩意:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap
            android:id="@+id/bitmap_splash"
            android:src="@mipmap/splash_bg">
        </bitmap>
    </item>
    <item
        android:top="@dimen/splash_logo_marginTop">
        <bitmap
            android:gravity="top"
            android:src="@mipmap/splash_logo">
        </bitmap>
    </item>
    <item
        android:bottom="80dp">
        <bitmap
            android:gravity="bottom"
            android:src="@mipmap/splash_word">
        </bitmap>
    </item>
</layer-list>

item有drawable属性,但是不能接收mipmap参数,所以我又包了bitmap。

  1. 在style里配置主题,我这里AppBaseTheme的parent是Theme.AppCompat.Light.NoActionBar,然后还有其他的一些配置。
<style name="Splash" parent="AppBaseTheme">
    <item name="android:windowBackground">@drawable/splash</item>
</style>
  1. 在manifest中splash的activity标签中配置主题:
...
android:theme="@style/Splash"
...
  1. 启动一下看看效果吧。

网上搜启动消除白屏的方法,有设置启动界面主题的背景为透明的,splash的xml布局还和以前一样,这样确实不白屏了,但是点击桌面上的icon开始会等一会splash才会出现,体验也不好。

参考

splash-screens-the-right-way

上一篇 下一篇

猜你喜欢

热点阅读