Skip to content

Python-for-android

Turn your Python application into an Android APK

Android 화면 크기 구하기

검증은 나중에 따로 해보자.

DisplayMetrics = autoclass('android.util.DisplayMetrics')
Context = autoclass('android.content.Context')
PythonActivity = autoclass("org.kivy.android.PythonActivity")

metrics = DisplayMetrics()
a = PythonActivity.mActivity
wm = a.getSystemService(Context.WINDOW_SERVICE)
d = wm.getDefaultDisplay()
d.getMetrics(metrics)

또는

from kivy.lang import Builder

from kivy.app import App

from jnius import autoclass

PythonActivity = autoclass("org.kivy.android.PythonActivity")
activity = PythonActivity.mActivity
displayMetrics = activity.getContext().getResources().getDisplayMetrics()

KV = '''
Screen:
    BoxLayout:
        id: container
        orientation: 'vertical'
        padding: dp(10)
        spacing: dp(10)

        Label:
            id: lbl
            halign: 'center'

        Widget:
'''


class Test(App):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.screen = Builder.load_string(KV)

        self.screen.ids.lbl.text += f'Width: {self.get_screen_width_dpi()}\n'
        self.screen.ids.lbl.text += f'Height: {self.get_screen_height_dpi()}\n'
        self.screen.ids.lbl.text += f'DPI: {displayMetrics.densityDpi}\n'

    @staticmethod
    def get_screen_width_dpi():
        return displayMetrics.widthPixels / displayMetrics.density

    @staticmethod
    def get_screen_height_dpi():
        return displayMetrics.heightPixels / displayMetrics.density

    def build(self):
        return self.screen


Test().run()

See also

Favorite site