首页 > 解决方案 > 根据屏幕尺寸调整设备

问题描述

我不知道这样的设备是否真的存在,但考虑到它们可以,请考虑以下两种设备:

设备

我试图调整小部件的大小,为它们提供一定百分比的宽度、高度等,并且由于 android 设备被归类为 x、xhpi、xxhdpi 等,我认为 dpi 是调整它们大小的好方法,但如你所见以上并非如此。

一个例子是:假设设备很小,那么我希望菜单栏占据屏幕的一半,如果它很大,我希望它只占据三分之一。

调整这些小部件的更好方法是什么?

编辑:如果我使用 ConstraintLayout 一些按钮必须用它们的大小进行硬编码,但我希望按钮根据屏幕大小变得更大/更小。

标签: android

解决方案


首先,对于能够使用百分比的要求,您可以使用 ConstraintLayout。我建议从官方培训文档开始。ConstraintLayout 相对较新(2017 年 2 月首次发布),因此更新的第三方教程并不多 - 但应该有足够的信息来回答您必须开始的任何问题。

这是一个简短的示例:

<MenuBar
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    app:layout_constraintHeight_percent="0.5" />

对于您问题的第二部分,您可以xxhdpi像上面提到的那样提供具有不同配置限定符的替代资源。更多信息请点击此处。要将浮点值作为维度存储在您希望在 dimen.xml 中声明的两种设备形式因素中res/values-[config_qualifiers]

<item name="bottom_menu_bar_height_percent" type="dimen" format="float">0.3</item>

从 xml 引用

<MenuBar
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_constraintHeight_percent=
    "@dimen/bottom_menu_bar_height_percent" />

希望这可以帮助 :)


推荐阅读