测量单位 px、dip、dp 和 sp 的区别是什么?


当前回答

PX(像素):

DP / DIP(密度像素 / 密度独立像素):

dip == dp. 在以前的Android版本中,dip 被使用,后来更改为dp. 这是 px 的替代品. 一般情况下,我们从来不使用 px 因为它是绝对值. 如果您使用 px 设置宽度或高度, 如果该应用程序正在下载到不同的屏幕大小设备,那么该视图不会扩展到屏幕的原始大小。

SP(尺寸独立像素):

基于用户的字体大小偏好,字体应该使用 sp. 当提到字体大小适合不同的屏幕大小时,使用 sp. 这类似于 dp.Use sp 特别是字体大小以生长 & 缩小动态基于屏幕大小

Android Documentation 說:

其他回答

基本上,唯一适用的 px 时间是 1 px,如果您想要屏幕上的一个像素,就像在分配器的情况下一样:

在 > 160 dpi 上,您可以获得 2-3 像素,

在 > 120 dpi 中,它旋转到 0.

dpi -

每英寸点 测量屏幕的像素密度。

px - 像素

编写屏幕像素

点 - 点

约 1/72 英寸,与物理屏幕大小相比。

在 - 英寸 - 至物理屏幕大小(1 英寸 = 2.54 厘米)。

mm - 毫米 - 与物理屏幕大小有关。

sp - 尺寸独立的像素。

基于用户的字体大小偏好,字体应该是“sp”。

迪普 -

dip = dp 密度独立的像素. 它根据屏幕密度而异. 在 160 dpi 屏幕上, 1 dp = 1 像素. 使用 dp 除了文本字体大小。

在标准情况下,dp 和 sp 用于字体大小 sp 和 dp 用于其他任何东西。

单元转换的公式:

px = dp * (dpi / 160 );

Density Bucket -> Screen Display => 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  

px - 一个像素,相同于什么在CSS,JavaScript,等使用 sp - 规模独立的像素 dip - 密度独立的像素

通常 sp 用于字体大小,而 dip 用于其他人(也称为 dp)。

px = 指屏幕上的像素可用于像素计算 px = dp * (dpi / 160) 可用于 dip = 密度独立的像素相当于 dp sp = 只能用于文本

PX(像素):

DP / DIP(密度像素 / 密度独立像素):

dip == dp. 在以前的Android版本中,dip 被使用,后来更改为dp. 这是 px 的替代品. 一般情况下,我们从来不使用 px 因为它是绝对值. 如果您使用 px 设置宽度或高度, 如果该应用程序正在下载到不同的屏幕大小设备,那么该视图不会扩展到屏幕的原始大小。

SP(尺寸独立像素):

基于用户的字体大小偏好,字体应该使用 sp. 当提到字体大小适合不同的屏幕大小时,使用 sp. 这类似于 dp.Use sp 特别是字体大小以生长 & 缩小动态基于屏幕大小

Android Documentation 說: