1

我正在为移动和平板设备开发应用程序。在以下屏幕截图中,我将按钮大小应用为android:layout_width="200dp" android:layout_height="80dp". 当我在平板电脑 ( mdpi ) 和其他两个移动设备 ( hdpi ) 和 ( xhdpi ) 中运行我的应用程序时,按钮大小会随着所有三个设备的密度不同而变化。

参考下图分别有tablet(mdpi)、nexus mobile(hdpi)和galaxy nexus mobile(xhdpi)模拟器: 在此处输入图像描述

我还检查了所有 3 台设备中的 Gmail 应用程序: 在此处输入图像描述

由于平板电脑的尺寸更大但密度(mdpi)最低,因此与其他尺寸相对较小且密度较高的设备相比,平板电脑中的 UI 看起来更小。

如果我希望按钮在平板电脑中看起来更大,我需要通过在values-sw360dpvalues-sw480dpvalues-sw600dp等中添加不同的尺寸来更改高度和宽度。

我的问题是,我们的 UI 应该根据屏幕尺寸看起来更大还是让它根据密度而变化?最佳实践是什么?

4

2 回答 2

0

对此没有具体的指导方针,我相信也没有最佳实践。

就个人而言,我允许用户界面根据屏幕尺寸看起来更大,因为这对于手机上的大多数其他应用程序来说都是相同的行为。如果我注意到文本被截断,我只会为这些较大的尺寸调整 dp 和 sp 值。

但是,由于没有最佳实践,这确实取决于个人选择。我更喜欢保持与设备上其他应用程序相似的 UI,这些应用程序也会被放大。

但我确实知道其他更喜欢保持 UI 一致的开发人员。如果您选择这样做,您可以考虑使用这两个库:

于 2019-03-16T21:37:31.390 回答
0

我认为使用的最佳做法是使用ConstraintLayout为所有屏幕尺寸设置 1 个布局。
当您在视图上使用固定大小(如android:layout_width="200dp" android:layout_height="80dp"布局)时,它不会响应所有屏幕尺寸。

如果您希望您的布局在所有不同的物理屏幕上都完全相同,请使用constraintLayout。

从文档中:

ConstraintLayout 允许您创建具有平面视图层次结构(无嵌套视图组)的大型复杂布局。它与RelativeLayout 类似,所有视图都根据兄弟视图和父布局之间的关系进行布局,但它比RelativeLayout 更灵活,更易于与Android Studio 的布局编辑器一起使用。

于 2019-03-16T21:37:54.707 回答