【问题标题】:So many units of measurements not in use?有这么多没有使用的度量单位?
【发布时间】:2015-12-09 13:27:54
【问题描述】:

Android 支持不同的度量单位:

  • dp
  • sp
  • 像素
  • 毫米

他们建议使用 dp 作为布局,使用 sp 作为字体大小。

谁能指出我应该使用其中之一的用例:pxptmm

【问题讨论】:

标签: android units-of-measurement


【解决方案1】:

XML 中定义的维度值。维度由一个数字指定,后跟一个度量单位。例如:10px、2in、5sp。 Android 支持以下计量单位:

1.dp: 与密度无关的像素 - 基于屏幕物理密度的抽象单位。这些单位是相对于 160 dpi(每英寸点数)的屏幕而言的,在该屏幕上 1dp 大致等于 1px。在更高密度的屏幕上运行时,用于绘制 1dp 的像素数会按适合屏幕 dpi 的系数放大。同样,在较低密度的屏幕上,用于 1dp 的像素数会按比例缩小。 dp与像素的比例会随着屏幕密度而变化,但不一定成正比。使用 dp 单位(而不是 px 单位)是一种简单的解决方案,可以使布局中的视图尺寸针对不同的屏幕密度正确调整大小。换句话说,它为您的 UI 元素在不同设备上的真实尺寸提供了一致性。

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

3.pt 点 - 基于屏幕物理尺寸的 1/72 英寸。

像素 像素 - 对应于屏幕上的实际像素。不推荐使用此度量单位,因为实际表示可能因设备而异;每个设备每英寸的像素数可能不同,并且屏幕上可用的总像素数可能更多或更少。

4.mm 毫米 - 基于屏幕的物理尺寸。

5.in 英寸 - 基于屏幕的物理尺寸。

要更好地了解 dip/dp 以及为什么要使用它们,请观看 this 视频。

你不需要在 android 中使用 sp 的直接值。您可以将 textAppearance 属性用于预定义值。 Here 是一些关于 textAppearance 的信息。

【讨论】:

    【解决方案2】:

    Here你有类似的问题,有详细的答案。

    像素、英寸、毫米和点是在不同屏幕上以不同方式显示的单位。屏幕分辨率可以在 240x320 像素和 2560x1600 之间变化,即使屏幕尺寸相似,反之亦然。仅在绝对必要时使用它们(例如标尺应用)。

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 2016-01-22
      • 2013-12-04
      相关资源
      最近更新 更多