一,res文件
res文件目录下,values中styles.xml文件中的代码:
<style name="ImageTranslucentTheme" parent="AppTheme">
<!--在Android 4.4之前的版本上运行,直接跟随系统主题--></style>
<style name="ColorTranslucentTheme" parent="AppTheme">
<!--在Android 4.4之前的版本上运行,直接跟随系统主题-->
</style>
<style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
<style name="ColorTranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
res文件目录下,新建values-v21中styles.xml文件中的代码:
<style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">false</item>
<!--内置按键的手机,不改变按键的背景,如华为-->
<item name="android:windowTranslucentNavigation">false</item>
<!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色-->
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="ColorTranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">false</item>
<!--内置按键的手机,不改变按键的背景,如华为-->
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:statusBarColor">@color/green</item>
</style>
二,在清单文件的activity节点中写入
android:theme="@style/ColorTranslucentTheme"(颜色的控制) 或者android:theme="@style/ImageTranslucentTheme"(背景图片的控制) 三,如果想将布局不占据状态栏,则在显示的布局最外层写入android:fitsSystemWindows="true"
(可以不用values-21)(在显示的布局最外层写入: android:background="")