安卓启动时出现白屏,是因为在执行onCreate时占用了时间。而使用setContentView又一定要放在onCreate中,setContentView本身,就需要占用时间,所以这个白屏无法从根本上消除。
这个白屏是由activity的theme项来决定,学名Preview,,消除的方法,是继承系统给定的样式,添加
1
|
< item name = "android:windowDisablePreview" >true</ item >
|
禁用其预览页。。
当然,也可以通过
1
|
< item name = "android:windowBackground" ></ item >
|
来指定显示的背景页。
全部继承方式距离
1
2
3
4
|
< style name = "AppTheme" parent = "AppBaseTheme" >
<!--
All customizations that are NOT specific to a particular API-level can go here. -->
< item name = "android:windowDisablePreview" >true</ item >
</ style >
|
注意:如果通过windowsBackground设置背景图后,在以后设计布局的时候,如果你没有给某个区域指定背景色,那么该区域默认透明,将会将背景图透视到前台。
在补充几个继承或者自定义主题时有用的Theme项,,(取自themes.xml)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//
背景图
<item
name= "windowBackground" >@android:drawable/dark</item>
//
前景图
<item
name= "windowFrame" >@ null </item>
//
是否展示标题
<item
name= "windowNoTitle" > false </item>
//
是否全屏
<item
name= "windowFullscreen" > false </item>
//
是否为悬浮窗
<item
name= "windowIsFloating" > false </item>
//
是否显示用户的壁纸
<item
name= "windowShowWallpaper" > false </item>
//
动画样式(说白了就是activity切换的动画)
<item
name= "android:windowAnimationStyle" ></item>
|
1
2
3
|
//
让背景透明,
//
在activity左右滑动时,划出区域显示下方的窗口
<item
name= "android:windowIsTranslucent" > true </item>
|