2016/8/8 11:11:18 # 纠错
之前写的这篇内容的知识点有误,给⼤家造成了误导,深感抱歉。
android 中给 Activity 设置背景的⽅法是在 style ⽂件中设置 windowBackground 属性,⽽⾮设置 background 属性,如果你设置的是
background 属性,那么抱歉,你可能会遇到下⾯所说的这种情况: Activity 的 layout 中所有布局控件的背景全变成了 background 所指定的样式。
2016/7/11 14:06:22
最近在做项⽬优化,其中碰到⼀个问题:每次应⽤冷启动的时候,会有⼀段时间的⽩屏,这种现象在低端机上更加明显。
为了解决这个问题,我⾸先是想到怎么做冷启动的优化(应⽤冷启动这块这⾥先不展开讲,后⾯会单独整理出来⼀篇⽂章)。冷启动的优化可以从⼏个⽅⾯⼊⼿,⽐如说:在App的Application类的onCreate⽅法中尽量不要做⽐较重的操作,包括SharedPreference⽂件的额初始化等。。另外,可以使应⽤每次不完全关闭,修改⽤户返回键的操作,减少应⽤冷启动的次数(⽬前微信好像就是这么做的)。
回过头来想⼀下,在我⽬前所做的这款App中,冷启动优化要解决的其实就是去除应⽤在冷启动情况下有⼀段时间⽩屏的问题,那么,我们不妨从应⽤的背景图⽚来考虑。
⾸先,设置应⽤第⼀个页⾯的theme,这⾥我的应⽤第⼀个页⾯是SplashActivity,因此,我再AndroidManifest.xml⽂件中添加了android:theme的属性。
然后,⾃定义属性ActivitySplashTheme。我的ActivitySplashTheme继承原来应⽤的style,在原来的基础上,我添加了⼀个background属性,并设置相应的背景图⽚。
到这⾥就完成了。
什么?!你说你的应⽤按照这样设置之后,界⾯出现了意想不到的“效果”,各种布局错乱?!好吧,看来还是没搞明⽩style的⽤法、以及style中background属性的意义。
说⼀下我的做法吧,在上⾯说的那些内容修改之后还不⾏的情况下,我给每个控件都另外添加了background属性
android:background=\"@android:color/transparent\"
⽐如,设置TextView的background,设置ImageView属性等(⼤家注意⼀下ImageView的background属性和src属性,搞清楚他们的区别,这⾥就不再赘述)。
以上所有的属性设置完毕后,跑⼀下应⽤,在冷启动的情况下,应⽤不会出现⽩屏的情况,取⽽代之的是预设的背景图骗。
好啦!到这⾥,我针对⾃⼰项⽬中App启动出现⽩屏的问题就已经解决了。⽅法可能不⽌⼀种,如果⼤家有其他好的⽅法,也希望能跟我交流。
因篇幅问题不能全部显示,请点此查看更多更全内容