从android4.4开始可以设置透明状态栏,可以根据这个功能来实现自定义状态栏的颜色;而在android5.0开始,可以直接修改状态栏的颜色。下面是我在项目中做的,实现了自定义状态栏颜色(只有在android4.4以上有效)。
首先看下主题:
v19\styles.xml
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!--设置状态栏为透明-->
<item name="android:windowTranslucentStatus">true</item>
<!--设置页面背景颜色-->
<item name="android:windowBackground">@color/colorPrimaryDark</item>
</style>
主题中加入上面两个item后,状态栏的颜色就会为背景颜色。当然这里也可以只设置状态栏为透明,颜色可以在布局文件中设置,只要设置根布局的android:background属性即可。
但是上面的主题在android5.0以上时,状态栏的颜色虽然有改变,但是会有阴影,所以还需要设置一个v21\styles.xml的主题:
v21\styles.xm
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!--设置状态栏颜色-->
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
添加这个主题后,便可在android4.4及以上设备中,都可实现修改状态栏颜色。