真正解决App启动时白屏/黑屏

背景
过去点击App图标时,App启动时总会出现短暂的白屏/黑屏,这是一个非常不好的体验,下来我们就一起来解决这个问题。

为什么
在点击App图标后,系统会首先加载AndroidManifest.xml里Activity所指定的Theme,不会那么快加载Activity里面的onCreate()方法,所以也不会那么快执行setContentView(),所以才会出现白屏/黑屏现象。

如何操作
知道这个就好办,我们只要设置好第一个Activity的Theme里的以下属性即可:

<item name="android:windowBackground">@drawable/main_window_bg</item>

main_window_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@color/white"/>
    <item android:top="@dimen/splash_icon_margin_top">
        <bitmap
            android:gravity="center|top"
            android:src="@drawable/ic_main_logo"/>
    </item>
</layer-list>

然后我们就会发现,成功了,白黑屏不见了,取而代之的是:

那么同学还想在该页面底部显示文字图片,例如一下版本信息,图片好办,直接在layer-list里添加item即可,如果想显示文字,而且还要获取要App的版本号,那么只能等待Activity加载。我们可以将Activity的Layout设置为透明,如以下布局。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:background="@android:color/transparent">

    <TextView
        android:id="@+id/tv_copy_right"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginBottom="@dimen/splash_version_info_margin_bottom"
        android:gravity="center"
        android:textColor="#c7c7c7"
        android:textSize="13sp"/>

</FrameLayout>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值