为所有 Android 台设备的布局指定 px 值

Assign px value to layout across all Android devices

我正在按照一组规范设计布局。我基本上需要在布局和 android 设备之间提供一些 space。下图供参考

我正在使用以下网站将给定像素转换为 dp 值AndroidPixelConverter

我在 xxxhdpi 列中给出 px 值并获取其相应的 dp 值,我将其放置在我的 xml 布局中。

我测试的主要手机是三星 S4 和 Nexus5

以下是我的问题:

  1. 根据 this 站点,Nexus5 和三星 S4 属于 xxhdpi 分辨率,但如果我使用上述 AndroidPixel Converter 站点中的 xxxhdpi 列,我仍然得到正确的像素值。这是为什么?
  2. Nexus5 有软导航栏,而三星 S4 有硬按钮作为导航。我如何检测它并相应地为我的布局赋予价值。导航栏,如果我没记错的话是 144px 的高度,如果不存在将改变布局尺寸。我该如何处理?

最后,请问我现在的方法对吗?如果不是,请正确引导。

P.S:我正在寻找跨所有设备的像素完美布局。可能吗?

您需要与您的设计师交谈并以不同的方式处理事情。你永远不想像那样以像素为单位指定布局。它不会缩放 - px 可以是任何大小。回到他那里并获得一个 dp 数字(dp 基本上是 1/160 英寸)。在 dp 中设计整个事物。然后让 phone 本身将其转换为 px。

如果以像素为单位进行设计,那是行不通的。设计物理尺寸(dp),让设备平移。

此外,您不能假定导航栏的高度。它可以并且确实在 dp 和 px 方面在设备之间有所不同。