Android开发动态修改系统状态栏Status bar的颜色,字体颜色自适应,状态栏字体颜色设置

实现思路是
直接在代码部分动态改变StatusBar的颜色

	getWindow().setStatusBarColor(getColor(R.color.accentColor));

就这样就解决了

但是还有个问题就是 文字 和 状态栏背景色 都为淡色 无法看清楚字体

解决办法

状态栏文字颜色只能在Android6.0以上版本才能自定义修改 , 但只有两种选择: 白色 (0)和 灰色(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)

如果背景色为 深色

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

如果背景色为 淡色

	getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

这些代码在本人使用过,正常使用
测试机型为:小米8,MUI10.3.6,Android9.0
详见 借鉴资料

下面是静态实现:
下面是 AppTheme 所对应的 style.xml 文件里的内容

<item name="android:windowLightStatusBar" tools:targetApi="m">trueitem>
<item name="android:statusBarColor">@color/design_default_color_primaryitem>

因为字体颜色只有两种可选 , 所以用一个 Boolean 值来决定的 就是对应的 android:window LightStatusbar
true : 字体为 深灰色
false : 字体为 白色

你可能感兴趣的:(Android,AndroidUI进阶)