对安卓应用开发者,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,至于其余的版本,请自行确认。图片