“px”、“dip”、“dp”和“sp”有什么区别?

问题描述

来自Android 开发者文档

  1. > - 对应于屏幕上的实际像素。

  2. > - 基于屏幕的物理尺寸。 > 1 英寸 = 2.54 厘米

  3. >- 基于屏幕的物理尺寸。

  4. > - 基于屏幕物理尺寸的 1/72 英寸。

  5. 或 > -independent Pixels - 基于屏幕物理密度的抽象单位。这些单位相对于 160 dpi 屏幕,因此 1 dp 是 160 dpi 屏幕上的一个像素。dp-to-pixel的比例会随着屏幕密度的变化而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更一致。

  6. > Scaleable Pixels scale-independent pixel - 这就像 dp 单位,但它也由用户的字体大小首选项缩放。建议您在指定字体大小时使用此单位,这样它们将根据屏幕密度和用户的喜好进行调整。请注意,Android 文档的sp实际含义不一致,一个文档说“与比例无关的像素”,另一个说“可缩放像素”。

Density Bucket Screen Density Physical Size Pixel Size
ldpi 120 dpi 0.5 x 0.5 in 0.5 in * 120 dpi = 60x60 px
mdpi 160 dpi 0.5 x 0.5 in 0.5 in * 160 dpi = 80x80 px
hdpi 240 dpi 0.5 x 0.5 in 0.5 in * 240 dpi = 120x120 px
xhdpi 320 dpi 0.5 x 0.5 in 0.5 in * 320 dpi = 160x160 px
xxhdpi 480 dpi 0.5 x 0.5 in 0.5 in * 480 dpi = 240x240 px
xxxhdpi 640 dpi 0.5 x 0.5 in 0.5 in * 640 dpi = 320x320 px
Unit Description Units Per Physical Inch Density Independent? Same Physical Size On Every Screen?
px Pixels Varies No No
in Inches 1 Yes Yes
mm Millimeters 25.4 Yes Yes
pt Points 72 Yes Yes
dp Density Independent Pixels ~160 Yes No
sp Scale Independent Pixels ~160 Yes No

解决方法

Android 度量单位之间有什么区别?

  • px
  • dip
  • dp
  • sp

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...