android 上的 kivy,更改任务栏颜色
kivy on android, change taskbar color
当buildozer.spec
文件中fullscreen
设置为0
时,是否可以更改任务栏颜色?
我已经尝试更改 Window.clearcolor
值,但因此当 fullscreen
为 0
时,任务栏不是 Window
的一部分,任务栏颜色不会改变。
如何做到这一点?
我相信 this is the answer for Java, therefore (as inclement said) you need to use pyjnius 从 Python 访问 Java 函数,然后将链接答案中提到的代码包装到 Kivy 可用的东西中。
示例(未测试):
from jnius import autoclass
WindowManager = autoclass('android.view.WindowManager')
R = autoclass('android.R')
activity = autoclass('<your.app.name>.PythonActivity').mActivity
window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.setStatusBarColor(activity.getResources().getColor(R.color.my_statusbar_color));
我认为只有 these 种颜色可用,但请随意尝试其他值。我在 Java 中看到 android.R
导入的一些问题,因此您可能只想使用原始值而不是从 android.R
模块中获取它们。
当buildozer.spec
文件中fullscreen
设置为0
时,是否可以更改任务栏颜色?
我已经尝试更改 Window.clearcolor
值,但因此当 fullscreen
为 0
时,任务栏不是 Window
的一部分,任务栏颜色不会改变。
如何做到这一点?
我相信 this is the answer for Java, therefore (as inclement said) you need to use pyjnius 从 Python 访问 Java 函数,然后将链接答案中提到的代码包装到 Kivy 可用的东西中。
示例(未测试):
from jnius import autoclass
WindowManager = autoclass('android.view.WindowManager')
R = autoclass('android.R')
activity = autoclass('<your.app.name>.PythonActivity').mActivity
window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.setStatusBarColor(activity.getResources().getColor(R.color.my_statusbar_color));
我认为只有 these 种颜色可用,但请随意尝试其他值。我在 Java 中看到 android.R
导入的一些问题,因此您可能只想使用原始值而不是从 android.R
模块中获取它们。