AOSP statusBar 透明
时间: 2023-08-08 11:08:14 浏览: 235
要将 AOSP StatusBar 设为透明,可以通过修改 SystemUI 的源代码来实现。具体步骤如下:
1. 下载 AOSP 源代码并编译 SystemUI 模块。
2. 打开 SystemUI 的源代码,找到 res/values/styles.xml 文件,添加以下代码:
```xml
<style name="TransparentStatusBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
```
这里定义了一个名为 TransparentStatusBar 的主题,将 windowTranslucentStatus 属性设为 true,表示 StatusBar 将会是透明的。
3. 找到 res/values/themes.xml 文件,添加以下代码:
```xml
<style name="Theme.TransparentStatusBar" parent="@style/Theme.SystemUI">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
```
这里定义了一个名为 Theme.TransparentStatusBar 的主题,继承自 Theme.SystemUI,将 windowTranslucentStatus 属性设为 true,表示 StatusBar 将会是透明的。此外,还将 statusBarColor 和 navigationBarColor 属性设为 transparent,表示 StatusBar 和 NavigationBar 都将是透明的。
4. 修改 SystemUI 的代码,在 onCreate 方法中将主题设为 Theme.TransparentStatusBar,代码如下:
```java
@Override
public void onCreate() {
super.onCreate();
// ...
setTheme(R.style.Theme_TransparentStatusBar);
// ...
}
```
5. 重新编译 SystemUI 模块,并将编译好的 SystemUI.apk 推到手机上。
6. 重启手机,即可看到 StatusBar 已经变成了透明的,背景为手机桌面的背景。
阅读全文