Android启动页黑屏及解决方案

当点击启动图标运行app的时候,系统会创建一个新的进程来运行app。在该进程创建完成之前,界面会呈现假死状态,于是系统就会根据清单文件设置的主题颜色来展示白屏或黑屏。这个黑白屏就是Preview Window预览窗口。

解决方案:

1.禁止加载preview window,结果就是点击app会无响应一段时间,然后进入app。体验太差劲

<style name="APPTheme" parent="@android:style/Theme.Holo.NoActionBar">
   <item name="android:windowDisablePreview">true</item>
</style>

2.自定义preview window

定义style:

<style name="APPTheme" parent="@android:style/Theme.Holo.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_icon</item>
</style>

splash_icon.xml

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

在这里插入图片描述

3.自定义preview window加强版

preview window直接设置成图片或者xml文件是有区别的,xml更方便实现动画(为了向splash过渡的更和谐)。当界面从preview window跳转到欢迎页的时候,欢迎页必须要先展示一个和preview window页面一样的图片(让人感觉不出来过渡),然后再慢慢切换。
如果对preview window设置的背景图不做处理,图片就会一直存在于内存中。所以当跳转到欢迎页的时候,要把preview window的背景图设置为空
SplashActivity.java

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        //将window的背景图设置为空
        getWindow().setBackgroundDrawable(null);
        super.onCreate(savedInstanceState);
    }
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页