根据应用内的自定义事件更改 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 文件上使用。
我目前正在开发一个简单的 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 文件上使用。