2014-11-02 91 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