Android当中的一些尺寸单位

Android当中的一些尺寸单位

手机尺寸

屏幕对角线的长度,单位为英寸(2.54cm)。

手机的分辨率

屏幕能够显示的像素数量,一般用在长方向上的数量*宽方向上的数量来表达。

手机的像素密度

pixels per inch,即ppi,也就是每英寸屏幕显示的像素数,像素密度越大,显示的画面细节就越丰富。

像素密度= {1+[(长度像素数-1)2+(宽度像素数-1)2]^(1/2)}/屏幕尺寸。(也就是对角线上每英寸显示的像素数了)

DPI

Dots Per Inch,每英寸所打印的点数或线数的缩写,用来表示打印机打印分辨率,但有时也会用dpi来代指ppi

dpi(dot per inch)屏幕像素密度,指的是每英寸多少像素 px(pixels)。

手机的密度

Density,以160ppi为基准,即像素密度为160时Density为1

ldpi 120dpi 0.75
mdpi 160dpi 1.0
hdpi 240dpi 1.5
xhdpi 320dpi 2.0

px

pixels,像素,1px的长度就对应了屏幕一个像素点的大小。不同的手机显示的大小可能是不一样的。

dp/dip

dp 与 dip(device independent pixels)是一个意思,指的是设备独立像素,或者说设备无关像素,和设备屏幕有关系。

1dp = (dpi/160)px

1dp = density px

1px = 1/density dp

也就是用dp做单位,最终转换的像素数是有变化的,例如1dp,如果是160dpi,就是1px;120dpi,就是0.75px;320dpi,就是2px。

最终的作用区别也就是,在尺寸不变的情况下:以dp为单位,在不同质量屏幕的手机上显示的大小是不变的;而以px为单位的话,在差一点的手机上,也就是像素密度更小的情况下,显示的效果会变大,在好一点的手机上则会变小。所以我们在布局文件中,除了字体大小以sp为单位,其它都以dp为单位就好

sp

scaled pixels(可缩放像素),主要用于字体大小的 ,与dp类似,但使用sp作为字体大小单位,字体大小会随着系统的字体大小改变,而dp作为单位的话就不会。

Android在运行的时候会自动将dp/dip/sp为单位的尺寸转换为以像素单位的值

原文地址:https://www.cnblogs.com/chen-ying/p/12724430.html