目标: 让我的应用程序适合所有安卓设备
我正在尝试使用 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)。8 次 10 我的应用在屏幕密度为 2 的设备上看起来很棒,但对于其他屏幕密度,我应该制作不同版本的代码吗?
例如,屏幕密度为 2,我可以使用:
size: "280dp", "180dp"
当密度为 1 时,我可以使用类似:
size: "140dp", "90dp"
ETC...
我真的很想知道这样做的正确方法是什么。提前致谢
主文件
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()