我的kivy程序在安卓上总是旋转屏幕
最近我尝试了kivy,但遇到了一些问题。谢谢大家的帮助。
首先,我的kivy程序在安卓上运行时总是会旋转屏幕。通常情况下,安卓的状态栏是在顶部的,但当我运行kivy时,它却跑到了右边。
我的安卓手机上开启了屏幕旋转功能,但当我转动手机时,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"
谢谢。
1 个回答
5
首先,我的kivy程序在安卓上运行时总是会旋转屏幕。通常安卓的状态栏是在顶部,但当我运行kivy时,它却移到了右边。
这个问题可以在buildozer.spec
文件中解决,只需要把方向设置那一行改成orientation = all
。你也可以查看其他行的注释,了解更多选项。
你还可以通过直接调用安卓的api来设置更多的方向选项(比如可以选择遵循用户的系统设置等),这可以用pyjnius来实现。我这里有一些示例代码,可以查看。类似的功能可能也会加入到plyer中。
如果你直接使用python-for-android,方向选项是可以作为命令行参数传递给build.py的。我不太记得具体的内容了,但你可以查阅文档——不过我还是推荐使用buildozer。