美文网首页程序员的职业规划
Android启动白屏/黑屏原因及解决方案

Android启动白屏/黑屏原因及解决方案

作者: 程序员大耳 | 来源:发表于2019-01-28 22:30 被阅读142次

我们APP在启动的时候会出现1~2秒的白屏或者黑屏,这个所谓的白屏或黑屏其实与我们设置的Theme有关。

一、Activity启动黑/白屏的原因

我们可以看到,一个Activity中在ContentView的外围还有PhoneWindow、DecorView、TitleView,当Activity进行绘制时会先绘制这三个控件,这时ContentView还没加载进来,所以什么东西都看不到,系统会将屏幕填充主题默认的背景色,亮系主题填充白色,暗系主题填充黑色,就出现了Activity启动之前的黑/白屏现象。

二、白屏或黑屏的解决方案

方案一、

将主题背景变成透明的,这样在ContentView加载出来之前,我们会透过启动的Activity看到桌面,就不会有黑/白屏的现象。再把标题栏去掉,把Activity设置成全屏的,效果挺不错,缺点是如果启动的是一个有复杂耗时操作的Activity,那么会有一种延迟的感觉。

<style name="AppTheme" parent="android:Theme.Light.NoTitleBar">

    <item name="android:windowIsTranslucent">true</item> 

    <item name="android:windowNoTitle">true</item> 

    <item name="android:windowActionBar">false</item> 

    <item name="android:windowBackground">@android:color/transparent</item> 

    <item name="android:WindowFullscreen">true</item>

</style>

方案二、

将主题背景设置成一张图片,但是图片的屏幕适配问题就需要考虑了,主题里的背景图片会自动拉伸。

<style name="AppTheme" parent="android:Theme.Light.NoTitleBar">

    <item name="android:windowNoTitle">true</item> 

    <item name="android:windowActionBar">false</item> 

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

    <item name="android:WindowFullscreen">true</item>

</style>

相关文章

网友评论

    本文标题:Android启动白屏/黑屏原因及解决方案

    本文链接:https://www.haomeiwen.com/subject/spxajqtx.html