【问题标题】:How to detect screen flip on Android in Kivy?如何在 Kivy 中检测 Android 上的屏幕翻转?
【发布时间】:2016-04-30 15:21:48
【问题描述】:

对于我正在开发的应用程序,我需要检测屏幕何时翻转。我想到了诸如 on_pause()on_start() 之类的东西,它们位于主应用程序类中,但我一无所获。

有什么建议吗?

谢谢


更新:

作为建议@jligeza,我尝试添加on_rotate,如下所示:

from kivy.core.window import Window
class guiApp(App):
    def on_start(self):
        ## Bind android flip-screen
        def _on_flip_screen(ee):
            print "flipping"
        Window.bind(on_rotate=_on_flip_screen)

但这什么都不做(屏幕旋转时不显示打印)。

我也用on_flip尝试过,但是这个事件导致应用程序在启动时崩溃。

这类问题没有好的解决方案?

【问题讨论】:

    标签: python event-handling kivy flip screen-rotation


    【解决方案1】:

    您可以将函数绑定到Window 类的on_rotate 事件。

    from kivy.core.window import Window
    
    def on_window_rotate(obj, degrees):
        print 'rotated degrees:', degrees
    
    Window.bind(on_rotate=on_window_rotate)
    

    【讨论】:

    • 感谢 jligeza。我注意到在窗口类中有一个 on_flip() 事件。这和on_rotate有什么区别?
    • @Tungsteno 和 OpenGL 有关的东西,我不确定它到底是做什么的。
    • 我刚刚测试了两者,但似乎不起作用。 on_flip 使应用程序崩溃。 :(
    • 我把它放在我的主应用程序类的 on_start 方法上。对吗?
    • @Tungsteno 如果它不起作用,那么可以尝试绑定到窗口高度或宽度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多