android黑屏日志_Android启动页黑屏的解决方案

一般APP启动都会显示一个白屏或者黑屏的页面,再跳到欢迎页,这样子的体验效果不好。这到底是怎么回事呢?要如何解决它呢?今天我们来分析下它产生的原因,以及解决方案。

1、产生原因

当系统启动一个APP时,zygote进程首先会创建一个进程去执行这个APP,但是创建进程是需要时间的,用户点击后以为没响应会再次点击,这样的体验效果不佳。为了解决这种迷之尴尬,Android系统会根据你的manifest中设置的主体颜色来显示一个白屏或者黑屏,它的正式称呼是Preview window,即预览窗口。

2、解决方案

这个问题的本质是,虽然代码还没执行,但是配置文件被提前读取了,所以我们主要针对mainfest来解决这个问题,更准确的说,是主题配置文件。

(1)修改启动的Activity的主题

具体方法如下: style.xlm

@drawable/splash_icon

同样将主题设置到启动的Activity的主题中,windowBackground就是即将展示的preview window。其中splash_icon可以是一整张图片,网上很多小伙伴也都是这么做的。

其实它也可以是一个能解析出图片资源的XML文件,好像只有layer-list这种能做得到,因为它能够将多个drawable叠加起来展示。

这样子就可以解决黑白屏的问题了。

(2)进一步优化:添加动画

一般我们的APP启动后都会有欢迎页,然后再进入主页。按照上面的做法,会先显示图片,接着显示欢迎页,然后到主页,由图片到欢迎页的跳转过渡很突兀,强迫症分分钟不能忍呀~

所以我们进行进一步的优化:添加动画。

实际上Preview window只能是静态图,展示不了动画。我们的做法是在跳到欢迎页中实现动画,就是在Preview widow跳转到欢迎页时,先显示一个跟Preview window页面一模一样的页面,让人觉得好像没有切换似的,然后再慢慢切换到欢迎页。

这里有个小问题要注意下:我们给Preview window设置的背景图如果不作处理,是会一直存在在内存中的,所以在进入欢迎页的onCreate中将背景图还原:

getWindow().setBackgroundDrawableResource(android.R.color.white);

到此启动页黑白屏的问题可以交货咯~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值