如何在Kivy中识别屏幕是纵向还是横向

时间:2015-09-24 00:29:55

标签: android python rotation kivy buildozer

我刚用kivy做了一个apk应用程序。在代码中,我根据屏幕的比例定义了所有小部件的位置。但是,当我旋转屏幕时,例如,从纵向到横向,绝对坐标仍然保持不变,并且它不能很好地适应。

是否有方法来识别是否正在显示肖像或风景?我需要这个,以便在用户旋转手机时重新定义我的小部件的位置。

2 个答案:

答案 0 :(得分:1)

使用pyjnius很有可能。

from jnius import autoclass

activity = autoclass('org.kivy.android.PythonActivity').mActivity
config = activity.getResources().getConfiguration()

print('Orientation :', config.orientation)

# 1 is potrait 2 is landscape

答案 1 :(得分:0)

最好不要使用绝对坐标,而是使用kivy的布局类来实现相对定位(你也可以手动指定相对定位但是更难更冗长,如果你这样做,你只是重新发明布局。)

在任何情况下,你问题的直接答案是你可以调用一个android api函数来获取你想要的方向,或者实际上你可能会特别关注{{ {1}}