2014-11-02 100 views
1

最近我尝试了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" 

感谢。

回答

2

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

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

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

如果您直接使用python-for-android,orientation选项是您可以传递给build.py的命令行参数之一。我不记得现成的,但你可以检查文件 - 尽管我推荐使用buildozer。

+0

谢谢!我会仔细阅读.spec文件 – Paul 2014-11-02 14:02:09