Activity启动黑/白屏原因与解决方式

出现情况

       最常见的就是App启动时候 加载启动页出现白屏一段时间, 给用户的感觉是非常不好的。

  加载方式

        我们在Activity的onCreate()方法中调用了setContentView()方法时候,传入了我们绘制的layout布局,也就是我们理论上应该看到的Activity布局内容,但是Android系统在启动一个新的Activity时,首先进行的并不是绘制Activity setContentView(),

一个Activity里面包含四部分, PhoneWindow、DecorView、TitleView、ContentView, 当创建Activity进行绘制时会先绘制前三个控件,这个时候ContentView还没加载进来,所以布局里什么东西都看不到,那么就出现了 黑、白屏的现象。

       解决方法

       每个App都有一个默认主题背景色, 在res资源文件下 的values文件下 styles.xml文件 ,这个里面是设置主题色 等等一些样式的。

   第一种方法:

    (1)、将主题背景变成透明的,这样在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>

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

  <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>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值