关于启动背景和透明状态栏
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="IntroTheme" parent="AppTheme"> <item name="android:background">@drawable/intro_background</item><!--设置背景图片--> <!--<item name="android:windowFullscreen">true</item>--><!--设置屏幕全屏,最顶部的状态栏会消失--> <!--<item name="android:windowTranslucentStatus">true</item>--><!--设置半透明状态栏--> <!--<item name="android:windowTranslucentNavigation">true</item>--><!--设置半透明虚拟键盘--> <!--<item name="android:statusBarColor">@android:color/transparent</item>--><!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--> </style> </resources>
设置背景
<item name="android:background">@drawable/intro_background</item><!--设置背景图片-->
效果:
当app启动时会最先显示主activity的背景然后才是布局(在没有设置背景的情况下启动会有很短时间的白屏)
半透明状态栏
<item name="android:windowTranslucentStatus">true</item><!--设置半透明状态栏-->
效果:
顶部的状态栏已经变为半透明,而且不会占用空间了,控件可能会与状态栏重合,解决方法:
在styles文件中
<item name="android:windowTranslucentStatus">true</item><!--设置半透明状态栏--> <item name="android:fitsSystemWindows">true</item>
或者在布局文件中加入
android:fitsSystemWindows="true"
移除状态栏
<item name="android:windowFullscreen">true</item><!--设置屏幕全屏,最顶部的状态栏会消失-->
效果:
可以看到顶部状态栏已经不见了,而且也不会占用着原来的位置,所有布局将会上移,如果需要保留原来空间处理方法同上
半透明虚拟按键
<item name="android:windowTranslucentNavigation">true</item><!--设置半透明虚拟按键-->
效果:
底部虚键盘已经变为半透明
导航栏完全透明
<!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--> <item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
效果:
需要注意的是这种方法导航栏仍然会占用原来的位置