我刚刚使用 kivy 制作了一个 apk 应用程序。在代码中,我根据屏幕的比例定义了所有小部件的位置。但是,当我将屏幕从纵向旋转到横向时,绝对坐标仍然保持不变,并且不太适合。
有没有一种方法可以识别正在显示的是纵向还是横向?当用户旋转手机时,我需要这个来重新定义我的小部件的位置。
使用 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
最好不使用绝对坐标,而是使用 kivy 的布局类来实现相对定位(您也可以手动指定相对定位,但这更难更冗长,如果你这样做,你只是在重新设计布局它)。
无论如何,对您的问题的直接回答是,如果您真的需要,您可以调用一个 android api 函数来获取方向,或者实际上您可能特别关心由kivy.core.window.Window.size