我的kivy程序总是在android上旋转屏幕
问题描述:
最近我尝试了kivy,但遇到了几个问题。感谢帮助。我的kivy程序总是在android上旋转屏幕
首先,我的kivy程序在android上运行时总是旋转屏幕。通常情况下,android上的状态栏位于顶部,当我运行kivy时,它会进入右侧。
屏幕旋转在我的android上启用,但是当我旋转手机时,kivy程序的方向不会改变。
而且我也尝试通过Window.rotation = 90旋转窗口,但状态栏的位置没有改变。
程序是非常简单的:
main.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()
pong.kv:
<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"
感谢。
答
首先,我的kivy程序在android上运行时总是旋转屏幕。通常情况下,android上的状态栏位于顶部,当我运行kivy时,它会进入右侧。
这是buildozer.spec
中的一个选项,只需将方向线更改为orientation = all
即可。您还可以阅读所有其他行的注释以查看其他选项。
您还可以通过直接使用pyjnius调用android api来设置更多方向选项(包括例如可选地遵守用户的系统设置等)。我有这个here的一些示例代码。类似的东西可能会在plyer。
如果您直接使用python-for-android,orientation选项是您可以传递给build.py的命令行参数之一。我不记得现成的,但你可以检查文件 - 尽管我推荐使用buildozer。
谢谢!我会仔细阅读.spec文件 – Paul 2014-11-02 14:02:09