解决Android APP启动出现白屏或黑屏的问题

本文介绍了如何通过自定义主题解决Android应用启动时出现白屏或黑屏的问题,并提供了具体的步骤,包括修改styles.xml和AndroidManifest.xml文件。此外,还讨论了如何避免因通知栏高度导致的视觉下坠感。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

Android开发者都会有这样的体会吧!自己开发的APP,在启动APP的时候,会出现一段时间白屏或黑屏(这跟手机系统相关,不过大多数都是显示白屏的),然后才会显示APP的界面。其实这段时间的出现,是APP在启动时,需要初始化一些数据,然后才会去加载主活动(第一个Activity)造成的。那么我怎么解决呢?

2. 解决方案

第一步:在res/values/styles.xml文件中,自定义一个主题CustomTheme,继承Application的主题AppTheme,然后重写windowBackground属性,设置为一张图片或者一种颜色。这里以设置一张图片为例:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <!-- App的第一个Activity的自定义主题 -->
    <style name="CustomeTheme" parent="AppTheme">
        <item name="android:windowBackground">@drawable/bg_welcome</item>
    </style>

</resources>

第二步:将AndroidManifest.xml中的主活动的主题修改为CustomTheme。然后就大功告成了。

​<application
    android:name=".MyApplication"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".main.WelcomeActivity"
        android:theme="@style/CustomTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

3. 补充

时间:2017.11.24

今天测试的时候,突然发现到一个问题。如果我们将主活动(专门做成一个欢迎界面,该欢迎界面只有一张图片)的布局的background属性也设置成@drawable/bg_welcome,启动APP后,能够发现欢迎界面会有一个明显的下坠感。经过不断的测试,终于发现了问题所在:

① APP先显示主题的默认背景图(bg_welcome,全屏,其高度包括了通知栏的高度);

② 然后才显示主活动的背景图(bg_welcome,全屏,其高度不包括通知栏的高度);

所以,造成下坠感,就是因为这个通知栏的高度。

那要怎么解决呢?其实很简单,如果主活动只有一张图片的话,我们完全可以不设置background,而是只设置主题的android:windowBackground,这样也完全可以实现欢迎界面的效果。但是,如果主活动是通过使用各种UI控件来打造欢迎界面的,那么我们可以使用截屏的形式,把主活动的欢迎界面截下来,然后让美工把通知栏去掉(这种方法确实有点low,不过我也没想到其他办法解决了,如果是在布局文件中里将UI控件上移一点,这个高度也不好控制,所以也挺麻烦的)

 

时间:2018.09.15

最近看了一篇不错的文章,在这里推荐一下《Android启动页黑屏及最优解决方案》

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值