当前位置: 首页 > 知识库问答 >
问题:

Android里面状态栏怎么换颜色

景仲渊
2023-03-14

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

我该怎么做?

共有3个答案

庾才
2023-03-14

您还可以在主活动中添加这些代码

if (Build.VERSION.SDK_INT >= 21)
{
getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.statusbar)); //status bar or the time bar at the top (see example image1)

getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.dark_nav)); // Navigation bar the soft bottom of some phones like nexus and some Samsung note series  (see example image2)
}
梁丘琛
2023-03-14

状态栏是操作系统拥有的系统窗口。在5.0之前的Android设备上,应用程序无权更改其颜色,因此这不是AppCompat库可以支持的旧平台版本。AppCompat能做的最好的ActionBar和应用程序中的其他常见UI小部件的着色支持。

在5.0后的Android设备上,更改状态栏的颜色还需要在Windows上设置两个额外的标志;您需要添加FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS标志并清除FLAG_TRANSLUCENT_STATUS标志。

Window window = activity.getWindow();

// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

// finally change the color
window.setStatusBarColor(activity.getResources().getColor(R.color.my_statusbar_color));
葛勇锐
2023-03-14

您可以通过设置android: statusBar颜色android:颜色Primary黑暗属性来更改它,该属性是您在styles.xml.中用于您的应用程序的样式

android: statusBar颜色默认继承android:的值:颜色Primary黑暗

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

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

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

从其文档中:

要使其生效,窗口必须使用WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS绘制系统栏背景,并且不得设置WindowManager.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);
 类似资料:
  • 我如何改变状态栏的颜色,应该是相同的导航栏。 我希望状态栏的颜色与导航栏的颜色相同

  • 还有黑色的图标,可能吗? 谢谢 编辑: M 开发人员预览版中的新增功能:windowLightStatusBar。在主题中打开它会告诉系统使用深色前景,这对于浅色状态栏很有用。请注意,M 预览似乎有一个错误,其中通知图标保持白色,而系统状态图标正确更改为半透明黑色。

  • 我想把状态栏的颜色设置为白色,把wifi和电池等图标设置为黑色。我怎么能这样做?。我更喜欢通过使用来完成此操作

  • 我需要红色的状态栏和白色的前景为我的整个应用程序。 我用的是Flatter_statusbarcolor软件包。 到目前为止,我做了以下工作: 在pubsec中添加了该包。yaml 在我的主机上导入了这个包。dart文件 在MyApp类的中添加了以下代码行 结果: 状态栏的颜色是红色(正常工作)。 前景颜色为白色。但重启时变为黑色。在热重新加载时,变为白色。但重启时,又变为黑色。 以下是我的完整代

  • 有人注意到iPhone 6模拟器的状态栏颜色没有使用正确的样式吗? 我将设置为并将设置为。 这适用于iOS8上除6和6 Plus以外的所有手机。在我的appDelegate中,我可以使用但这不会为启动屏幕设置它。它仍然需要黑暗的时候,我想轻内容。有人能解决这个问题吗。我需要在plist中添加新项目吗?

  • 状态栏文字颜色 sdk状态栏文字的颜色可以设置为白色或者黑色 , 设置方法如下: /** @param isDark true为黑字模式, false为白色模式 */ Ntalker.getInstance().statusBarDarkMode(boolean isDark);