在 Android 中为所有屏幕尺寸和所有屏幕密度创建布局的最佳做法是什么

What is the best practice for creating layouts for all screen sizes and all screen densities in Android

根据我阅读的内容(包括官方文档),建议创建单独的布局、单独的可绘制对象、单独的 dimens.xml 文件以适应所有屏幕尺寸和屏幕密度,但据我所知,有有超过 100 种不同的屏幕 size/screen 手机密度组合,为每一种手机创造独特的 layouts/drawables 几乎是不可能的。

可以通过简单地以编程方式调整单个布局来实现相同的结果,但是,根本没有人建议使用这种方法。为什么?

即使我在布局中使用 dp 来调整元素的大小,它在不同密度下看起来仍然会有所不同。

假设您有 xhdpi 密度的大屏幕设备布局,您是否让您的应用仅适用于这些设备?似乎不太可能。

有人怎么可能制作出适合所有屏幕 sizes/screen 密度的应用程序?

必须有一种最佳方法来为所有屏幕尺寸和所有屏幕密度创建布局,但是什么?我真的迷路了。任何人都可以提供一个以某种方式做到这一点的简单项目吗?

参考: Is there a list of screen resolutions for all Android based phones and tablets?

你可以做两件事:

  1. 根据设备屏幕的高度和宽度以编程方式调整 UI 组件的高度和宽度。
  2. 在xml中使用体重而不是使用固定的身高和体重,所以一切都将基于比例。

注意:您不能同时使用这两个。

我有一些解决方案给你

  1. 使用约束布局 (https://developer.android.com/training/constraint-layout/)
  2. 使用 PercentRelativeLayout (https://developer.android.com/reference/android/support/percent/PercentRelativeLayout)
  3. Sdp 转换器 (https://github.com/intuit/sdp)

以我为例。我都用。他们也可以一起工作。