APP动态修改状态栏颜色

对安卓应用开发者,UI部分最难搞的就是APP顶部的状态栏。
一致的APP风格,状态栏仅仅须要设置一种颜色。
java

安卓全局颜色设置

在这里插入图片描述

单一APP状态栏

很显然,咱们只要将AppTheme中colorPrimaryDark修改成APP设计中的统一风格便可。android

动态修改APP状态栏颜色

修改APP Theme

主要是window的一些配置布局

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="android:windowBackground">@android:color/holo_blue_bright</item>
    </style>

运行,看一下效果
在这里插入图片描述状态栏遮挡了APP"正文"
在activity布局文件 根布局添加

测试

android:fitsSystemWindows="true"

在这里插入图片描述

动态修改状态栏背景颜色

getWindow().getDecorView().setBackgroundResource(android.R.color.holo_green_dark);

这样就能够动态修改状态栏背景颜色。spa

修改状态栏图标颜色

若是状态栏背景修改成白色,那原来的状态栏图标岂不是都不可见了?
在这里插入图片描述像这样什么都看不到
设计

将白色修改成黑色(PS.彷佛只能是这两种颜色)code

Window window = getWindow();
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

在这里插入图片描述若是须要将状态栏图标颜色动态修改成白色怎么处理呢?blog

getWindow().getDecorView().setSystemUiVisibility(0);

小米9SE测试ok,至于其余的版本,请自行确认。图片

相关文章
相关标签/搜索