Android 编程下 DP、SP 以及屏幕像素密度

有时需为视图属性指定大小尺寸值(一般以像素为单位,但有时也用点、毫米或英寸)。最多见的属性有:字体

  • 文字大小(Text Size),指设备上显示的文字像素高度;
  • 边距(Margin),指定视图组件间的距离;
  • 内边距(Padding),指定视图外边框与其内容间的距离。

Android 使用 drawable-ldip、drawable-mdip 以及 drawable-hdip 三个目录下的图像文件自动适配不一样像素密度的屏幕。假如图像完成了自动适配,但边距没法缩放适配,又或者用户配置了大于默认值的文字大小,会发生什么状况呢?spa

为解决这些问题,Android 提供了密度无关的尺寸单位(density-independent dimension units)。使用这种单位,可在不一样屏幕密度的设备上获取一样大小的尺寸。无需麻烦的转换计算,应用运行时,Android 会自动将这种单位转换成像素单位。ip

  • dp

英文 density-independent pixel 的缩写形式,意为密度无关像素。在设置边距、内边距或任何不打算按像素值指定尺寸的状况下,一般都使用 dp 这种单位。若是设备屏幕密度较高,密度无关像素会相应扩展至整个屏幕。1dp 单位在设备屏幕上老是等于 1/160 英寸。使用 dp 的好处是,不管屏幕密度如何,总能得到一样的尺寸。开发

  • sp

英文 scale-independent pixel 的缩写形式,意为缩放无关像素。它是一种与密度无关的像素,这种像素会受用户字体偏好设置的影响。咱们一般会用 sp 来设置屏幕上的字体大小。it

  • pt、mm、in

相似与 dp 的缩放单位。容许以点(1/72英寸)、毫米或英寸为单位指定用户界面尺寸。但在实际开发中不建议使用这些单位,由于并不是全部设备都能按照这些单位进行正确的尺寸缩放配置。io

相关文章
相关标签/搜索