如果大家碰到了这个问题,相信刚开始大家都是很委屈的吧,心里想:我什么都没干啊,就写了个setContentView就要背锅了?如果已经遇到了,不要方,这里给大家提供几个解决方案,我们APP在启动的时候会出现1~2秒的白屏或者黑屏,这个所谓的白屏或黑屏其实与我们设置的Theme有关,如果是Light就是白色,如果是Black则可能出现黑屏,那么为什么会有这种情况出现呢?接下来给大家分析一波。
App启动时白屏或黑屏的原因
当你打开一个App时其实就是打开了一个activity,如果这个Activity所属的应用还没有在运行,那么系统会为这个Activity所属的应用创建一个进程,创建进程是需要时间的,从而导致了白屏或黑屏的出现。
白屏或黑屏的解决
解决方案其实很多,接下来给大家介绍几种
第一种解决方案
打开Manifest文件,找到启动的Activity,找到对应的主题,进入style.xml文件,设置android:windowBackground属性为你启动页的图片即可,如果想体验更好,也可以加入windowNoTitle属性为true隐藏ActionBar,再加入android:windowFullscreen属性为true全屏显示,从而达到秒启动的效果
<style name="SplashTheme" parent="AppBaseTheme">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowFullscreen">true</item>
<item name="windowNoTitle">true</item>
</style>
第二种解决方案
第一种方案是加入一张图片从而造成一种快速启动的错觉,不过呢,可能会有一种小问题,那就是图片会移动一下,强迫症表示忍受不了,上第二种方案,直接给你的activity设置android:windowBackground属性为透明色,这样就可以避免图片拉伸的问题,小二,上效果。
<style name="SplashTheme" parent="AppTheme">
<!-- 这里的trans自己写一个#00000000即可-->
<item name="android:windowBackground">@color/trans</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
这样呢有一个小小的缺点,就是启动App的时候,由于界面是透明的,所以可能会导致用户以为自己没有点到App,这两种方式大家根据自己的需求来。