android 白屏

从首篇介绍我为什么写文章到现在已经过去好久.......(懒),但从此刻开始,不出意外情况每周给大家至少写一篇文章,就按平时app开发流程以及本人遇到的问题,从app欢迎页面开始吧!

一:为什么会有欢迎页面?

使用欢迎界面(也叫启动页)的目的是:“缓冲”,在用户首次进入app,app总要去服务端获取部分数据,而获取数据是需要时间的,开发者为了不让用户干等,就设计欢迎界面做缓冲,等获取数据完毕就进行下一步操作,当然也有别的目的,如:宣传推广广告等。

二:欢迎页面之前可能遇到的问题?

1.我遇到过用户点击进入app,出现白屏。

原因:出现的原因:(1)启动页进入onCreate()里的setContentView()前后布局进行了太多的操作.

                                (2)如果有application,也可能是application进行了太多初始化操作,解决办                                  法:(2.1)从精简application的代码入手,每个人视情况而定。

                                    (2.2)在application的theme下的style标签下添加一个item标签< item name="android:windowIsTranslucent" >true,设置这个属性后如果有如果原来有切换动画的话,这个动画会消失。


    ok,那我们先来考虑启动页布局耗时太长的解决方法。

    方法一:给启动页设置theme.(不推荐),原因:这张splash图片是写在theme中的,图片的内存释放不掉。

直接上图吧:

AndroidMainfest.xml设置:

6748497-7a1cbe5c6541630a.png

style中,都有注释。


6748497-299675aedfe61a34.png


<style name="Theme.Start" parent="Theme.AppCompat.Light.NoActionBar">

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

<item name="name="android:windowBackground">你自己的背景图</item>

<style/>

6748497-cd82ebc79c9f956f.png

最后onCreate()

View view = View.inflate(this, R.layout.activity_welcome,null);

//取消状态栏,全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

        WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(view);

第二种方法:注意此方法还有几毫米的白屏但效果已经很好了,对内存影响小。

//在activity的onCreate方法的super前给window设置背景getWindow().getDecorView().setBackgroundResource(R.drawable.welcome);


ok,介绍完毕,先讲这么多,别急,慢慢来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛之涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值