首页 > 解决方案 > DP而不是PX应该保持大小还是改变它?

问题描述

最近我在 android 开发中读到了 DIP 和 PX,但我有一件事有问题。我们应该使用 dp 来保持所有屏幕的小部件和图像大小,对吗?例如,在 mdpi 中具有 32 * 32 像素的图像等于在 xhdpi 屏幕中具有 64 * 64 像素的图像我的意思是它们在具有相同尺寸(如 5 英寸)和不同密度的两个不同屏幕中具有相同尺寸!但是在我下面提到的图片中,它具有不同的尺寸和相同的 dp !!!为什么 ??!!
点击图片

标签: android

解决方案


我认为您错过的问题不是尺寸相同,而是屏幕比例相同,图像中的图标具有不同的像素大小,具体取决于屏幕 dpi。

在创建应用程序的 UI 布局时,通常使用 px、dp、dip 和 sp 等单位定义尺寸。

Pixels(px) - 对应于屏幕上的实际像素。如果您想给出宽度或高度的绝对像素,则使用此选项。

与密度无关的像素(dp 或 dip) ——基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,但“dp”与“sp”更一致。

Scale-independent Pixels(sp) – 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。

始终只使用 dp 和 sp。sp 用于字体大小, dp 用于其他所有内容。它将使 UI 与不同密度的 Android 设备兼容。您可以从https://www.google.com/design/spec/layout/units-measurements.html#units-measurements-density-independent-pixels-dp-了解有关像素和 dp 的更多信息


推荐阅读