Kivy:调暗 Android 导航按钮
Kivy: dimming Android navigation buttons
我想调暗 Kivy 应用程序中的导航按钮。 Java 中的操作方法在此处描述:https://developer.android.com/training/system-ui/dim.html
但是我无法弄清楚如何使用 pyjnuis 或其他东西在 Kivy 中做到这一点。
有人以前做过吗?
谢谢
是的,您可以通过 pyjnius 执行此操作。唯一需要注意的是,您不能从 UI 线程之外修改 Android UI 组件。
首先,您将使用 pyjnius 导入 Java 类:
from jnius import autoclass
PythonActivity = autoclass('org.renpy.android.PythonActivity')
View = autoclass('android.view.View')
然后可以修改系统UI(仅从UI线程):
PythonActivity.mActivity.getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)
这是一个完整的例子:
import kivy
kivy.require('1.8.0')
from kivy.app import App
from kivy.lang import Builder
from jnius import autoclass
PythonActivity = autoclass('org.renpy.android.PythonActivity')
View = autoclass('android.view.View')
from android.runnable import run_on_ui_thread
root = Builder.load_string('''
BoxLayout:
orientation: 'vertical'
Button:
text: 'Dim'
on_press: app.dim()
Button:
text: 'Undim'
on_press: app.undim()
''')
class DimTestApp(App):
def build(self):
return root
@run_on_ui_thread
def set_systemui_visibility(self, options):
PythonActivity.mActivity.getWindow().getDecorView().setSystemUiVisibility(options)
def dim(self, *args):
self.set_systemui_visibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)
def undim(self, *args):
self.set_systemui_visibility(0)
if __name__ == '__main__':
DimTestApp().run()
You can download a test APK if you'd like(link 有效期至 2015-04-09)。
我想调暗 Kivy 应用程序中的导航按钮。 Java 中的操作方法在此处描述:https://developer.android.com/training/system-ui/dim.html 但是我无法弄清楚如何使用 pyjnuis 或其他东西在 Kivy 中做到这一点。 有人以前做过吗?
谢谢
是的,您可以通过 pyjnius 执行此操作。唯一需要注意的是,您不能从 UI 线程之外修改 Android UI 组件。
首先,您将使用 pyjnius 导入 Java 类:
from jnius import autoclass
PythonActivity = autoclass('org.renpy.android.PythonActivity')
View = autoclass('android.view.View')
然后可以修改系统UI(仅从UI线程):
PythonActivity.mActivity.getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)
这是一个完整的例子:
import kivy
kivy.require('1.8.0')
from kivy.app import App
from kivy.lang import Builder
from jnius import autoclass
PythonActivity = autoclass('org.renpy.android.PythonActivity')
View = autoclass('android.view.View')
from android.runnable import run_on_ui_thread
root = Builder.load_string('''
BoxLayout:
orientation: 'vertical'
Button:
text: 'Dim'
on_press: app.dim()
Button:
text: 'Undim'
on_press: app.undim()
''')
class DimTestApp(App):
def build(self):
return root
@run_on_ui_thread
def set_systemui_visibility(self, options):
PythonActivity.mActivity.getWindow().getDecorView().setSystemUiVisibility(options)
def dim(self, *args):
self.set_systemui_visibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)
def undim(self, *args):
self.set_systemui_visibility(0)
if __name__ == '__main__':
DimTestApp().run()
You can download a test APK if you'd like(link 有效期至 2015-04-09)。