根据应用内的自定义事件更改 home/lock 屏幕上的 Android 状态栏颜色

Change Android status bar color on home/lock screen based on custom events within an app

我目前正在开发一个简单的 android 应用程序,它应该根据后台发生的某些事件更改 home/lock 屏幕的状态栏颜色(类似于当电池电量低于 10%)。我知道状态栏颜色可以在应用程序本身内更改,但是这可以在没有 root 访问权限的情况下在系统级别完成吗?

非常感谢, 卢锡安

要更改 android 状态栏颜色,请参阅 How to Customize the Status Bar on Android (Without Rooting)

无法更改 home/lock 屏幕的颜色,因为您只能更改 activity 状态栏的颜色,但它在所有 android SDK,

但是你可以开发一个启动器,然后为它做一个服务,然后你可以将数据传递给服务,然后改变home/lock屏幕状态栏的颜色。

并且服务代码和更改状态栏颜色以及制作启动器在互联网上,您可以访问它们

希望对您有所帮助!!

如果您还有其他问题或需要帮助询问,然后我会尽力帮助 (:

祝你好运

加上MainActivity.java,还有getWindow().setStatusBarColor(0x00000000); 看看AppBar的backgroundColor是不是透明的,可能是状态栏字体看不懂

1)先走 在 colors.xml 个文件上 看看你是否已经在 2 个元素中添加了代码,如果没有就把那个

<?xml version="1.0" encoding="utf-8"?>
<resources>

<color name="black_overlay">#66000000</color>
<color name ="purple">#770B7A;</color>

</resources>

在这个元素里写一个颜色<color name ="purple">,在我的例子中我命名为purple,这个颜色,purple就是一个例子,你要什么颜色就给什么。

2)第二次去 在 MainActivity.java 文件上 请注意,有一个注释说 //change status color ,所以在这个命令下写代码

 if(android.os.Build.VERSION.SDK_INT >= 21) {
 Window.window=this.getWindow();
 Window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKBROUNDS);
 Window.clearFlag(windowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
 Window.setStatusBarColor(this.getResources().getColor(R.color.your_color));
 }

这是一个插件但是一定要在这段代码中写上你想要的颜色名称(R.color.your_color) 像这样写颜色的名称(R.color.purple),java 不存在代码颜色所以这就是我写的原因 颜色的名称。 注意:一定要写相同的 color name,你在 color.xml 文件和 MainActivity.java 文件上使用。