我的 kivy 程序总是在 Android 上旋转屏幕

Pau*_*aul 2 python android kivy

最近我尝试了kivy,但遇到了几个问题。感谢帮助。

首先,我的 kivy 程序在 Android 上运行时总是旋转屏幕。通常 Android 上的状态栏位于顶部,当我运行 kivy 时,它会转到右侧。

我的 Android 上启用了屏幕旋转,但是当我旋转手机时,kivy 程序的方向不会改变。

我也尝试通过 Window.rotation = 90 旋转窗口,但状态栏的位置没有改变。

程序非常简单:

主要.py:

from kivy.app import App
from kivy.uix.widget import Widget
class PongGame(Widget):
    pass


class PongApp(App):
    def build(self):
        return PongGame()


if __name__ == '__main__':
    PongApp().run()
Run Code Online (Sandbox Code Playgroud)

乒乓球:

<PongGame>:    
    canvas:
        Rectangle:
            pos: self.center_x - 5, 0
            size: 10, self.height

    Label:
        font_size: 70  
        center_x: root.width / 4
        top: root.top - 50
        text: "0"

    Label:
        font_size: 70  
        center_x: root.width * 3 / 4
        top: root.top - 50
        text: "0"
Run Code Online (Sandbox Code Playgroud)

谢谢。

inc*_*ent 5

首先,我的 kivy 程序在 Android 上运行时总是旋转屏幕。通常 Android 上的状态栏位于顶部,当我运行 kivy 时,它会转到右侧。

这是 中的一个选项buildozer.spec,只需将方向线更改为 即可orientation = all。您还可以阅读所有其他行的注释以查看其他选项。

您还可以通过直接使用 pyjnius 调用 android api 来设置更多方向选项(包括例如可选地遵守用户的系统设置等)。我在这里有一些示例代码。plyer中可能会出现类似的内容。

如果您直接使用 python-for-android,则orientation选项是您可以传递给build.py的命令行参数之一。我不记得了,但你可以查看文档 - 尽管我还是建议使用 buildozer。