如何更改Android中状态栏的颜色?

新手上路,请多包涵

我想在 Android Studio 中更改高亮条的颜色:

在此处输入图像描述

我该怎么做?

原文由 Humty 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 615
2 个回答

您可以通过在 styles.xml 中设置您用于应用程序的样式的 android:statusBarColorandroid:colorPrimaryDark 属性来更改它。

android:statusBarColor 默认继承了 android:colorPrimaryDark 的值)

例如(因为我们在这里使用 AppCompat 主题,所以省略了 android 命名空间):

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimaryDark">@color/your_custom_color</item>
</style>

在 API 级别 21+ 上,您还可以使用代码中的 Window.setStatusBarColor() 方法。

从它的 文档

要使其生效,该窗口必须使用 WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDSWindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 绘制系统栏背景,不得设置。如果颜色不透明,请考虑设置 View.SYSTEM_UI_FLAG_LAYOUT_STABLEView.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

要设置这些标志,您可以执行以下操作:

 // getWindow() is a method of Activity
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

原文由 earthw0rmjim 发布,翻译遵循 CC BY-SA 4.0 许可协议

右键单击 res 文件夹中的 values 文件夹中的主题文件夹:|

 <!--write something like this in the color.xml, with your own color code-->

<color name="status_bar_light">#FFea80fc</color>
<color name="status_bar_dark">#FF263238</color>

在themes.xml 中,将colorPrimaryVariant 更改为此

<item name="colorPrimaryVariant">@color/status_bar_light</item>

在 theme.xml(night) 中添加这个

<item name="colorPrimaryVariant">@color/status_bar_dark</item>

有了它,快乐的编码;)

原文由 Prince Igwenagha 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题