使KivyMD Android应用程序适合所有屏幕尺寸

时间:2020-08-06 22:48:38

标签: python python-3.x kivy kivy-language kivymd

目标: 使我的应用程序适合所有android设备

我正在尝试使用kivy和KivyMD构建游戏,但我不知道如何使我的代码适合所有android设备。

在kivyMD文档中,开发人员经常使用“ dp”指标(与密度无关的像素)来描述小部件的大小。

当我使用python3 main.py -m screen:note2,portrait用以下代码查看我的应用在note2上的外观时,布局按我的意愿出现,但是当我使用屏幕密度不同的设备时会出现问题(例如3或1)(https://github.com/kivy/kivy/blob/master/kivy/modules/screen.py)。 10的8倍,我的应用在屏幕密度为2的设备上看起来不错,但对于其他屏幕密度,我应该制作不同版本的代码吗?

例如,在屏幕密度为2的情况下,我可以使用:

size: "280dp", "180dp"

当密度为1时,我可以使用类似的东西:

size: "140dp", "90dp"等...

我真的很想知道什么是正确的方法。预先感谢

main.py

from kivy.lang import Builder

from kivymd.app import MDApp

KV = '''
Screen:
    MDCard:
        orientation: "vertical"
        padding: "8dp"
        size_hint: None, None
        #Those dimensions look great when the density is two AND Width of the screen is less than 1920
        size: "280dp", "180dp"
        pos_hint: {"center_x": .5, "center_y": .5}
        MDLabel:
            text: "Title"
            theme_text_color: "Secondary"
            size_hint_y: None
            height: self.texture_size[1]
        MDSeparator:
            height: "1dp"
        MDLabel:
            text: "Body"
'''


class TestCard(MDApp):
    def build(self):
        return Builder.load_string(KV)


TestCard().run()  

0 个答案:

没有答案