从首篇介绍我为什么写文章到现在已经过去好久.......(懒),但从此刻开始,不出意外情况每周给大家至少写一篇文章,就按平时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设置:
style中,都有注释。
<style name="Theme.Start" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent" >true</item>
<item name="name="android:windowBackground">你自己的背景图</item>
<style/>
最后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,介绍完毕,先讲这么多,别急,慢慢来。