使通知栏(顶部状态栏) 以及底部的小白条(导航栏) 变透明是美化安卓应用的一个关键

如图,顶部和底部是不透明的
一 在配置文件中查看应用使用的主题文件


由于有白天和黑夜两个主题文件,所以两个文件都需要更改
二 更改主题文件
1. 前置更改
首先确保你的应用没有传统意义上的标题栏或操作栏
<!-- 隐藏标题栏 -->
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
然后,在 style.xml
中加入透明样式
<color name="transparent">#00000000</color>
2. 状态栏透明化
<!-- 状态栏透明 -->
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:statusBarColor">@android:color/transparent</item>
-
windowTranslucentStatus
属性使得状态栏内容可以穿透显示在背后的背景上, - 而
windowDrawsSystemBarBackgrounds
则被设为false
以确保状态栏不会绘制自己的背景颜色。 - 最后,通过设置
statusBarColor
为透明色来进一步确认状态栏的透明度。
3. 底部导航栏透明化
<!-- 底部小白条 变为透明-->
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
windowTranslucentNavigation
属性用于使导航栏透明,- 而
navigationBarColor
则指定其颜色为透明。
4. 假如使用的是 API 21+
<!-- 如果你使用的是 API 21+,还可以使用下面的属性 -->
<item name="android:windowLightStatusBar">true</item>
windowLightStatusBar
可以让状态栏图标变成深色,以便在浅色背景下更容易看见
三 效果图


Comments NOTHING