android - 如何在 Kivy 中检测 Android 上的屏幕旋转?

标签 android python rotation kivy onconfigurationchanged

我一直在寻找一种 Kivy 解决方案来捕获 Android 设备从一个方向到另一个方向的旋转。我已经尝试了下面的两种窗口方法,但在旋转设备时都没有执行 on_rotaterotate_screen 例程。我看到 java 中有一个 onConfigurationChanged 事件,但我找不到 Kivy 的相同事件处理。

    Window.on_rotate(self.on_rotate)
    Window.bind(on_rotate=self.rotate_screen)        

我在 logcat 中得到的是以下指示设备已旋转但我的应用程序从未看到这些事件的消息。

I/InputReader(270): Reconfiguring input devices.  changes=0x00000004
I/InputReader(270): Device reconfigured: id=3, name='ilitek_i2c', surface size is now 1280x800, mode is 1
I/ActivityManager(270): Config changed: {1.0 0mcc0mnc en_US sw800dp w1280dp h752dp xlrg land finger -keyb/v/h -nav/h s.8}

最佳答案

我认为 on_rotate 只跟踪 Kivy 的内部旋转(这是在 OpenGL 中完成的,与 Android 级别旋转无关)。

您可能可以使用 pyjnius 来处理普通的 Java 方法,但我不知道细节。一个可能同样有效的简单解决方案是观察 Window.size(from kivy.core.window import Window)——这应该检测到从纵向到横向的变化。

关于android - 如何在 Kivy 中检测 Android 上的屏幕旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39430824/

相关文章:

android - 无论屏幕大小如何,始终从 mdpi 文件夹中读取可绘制对象

android - 如何在 android 布局本身中跨越 textview?

python - 如何使用 Matplotlib 在 Python 中将 for 循环中的自定义绘图添加/附加到单个子图?

python - 为什么我的 glob.glob 循环没有遍历文件夹中的所有文本文件?

Python,DataFrame - 查找一行中的某个值

ios - 防止更改 View Controller 中的方向

java - 绕特定点旋转(例如,绕0,0,0旋转)

android - 禁用 Firebase 崩溃报告

android - 膨胀 MapView 时出现问题

C - 矩阵旋转