首先可能会涉及的几个关于屏幕尺寸的单位:
px,像素,屏幕现象的基本单位
分辨率,屏幕宽高即横纵两个方向的像素个数,比如480*800
屏幕尺寸,经常会说几寸几寸的,其实是屏幕对角线的长度,单位是英寸,1inch=2.54cm
dpi,即dots per inch,每英寸多少个像素点,相当于px/inch,是屏幕密度(Screen Density)的单位
dp,或称dip,density independent pixels,密度无关像素,既然是像素,也就是说dp其实就是尺度不同的px而已
android官方默认的dpi有:120dpi, 160dpi, 240dpi,分别对应low, medium(default)和high,其他的dpi都会被认为是最接近的那个dpi。当然还有更大尺寸的:
还可以看到的是,mdpi是像素比值的基准,也就是在160dpi下,1dp=1px
还有一个关于屏幕尺寸的名词叫pixel ratio,即dp和px之间的比值,由于以160dpi为基准,可以表示为屏幕dpi与标准dpi(160)的比值,既然是比值那么也就没有单位
单位换算:
通过分辨率和屏幕尺寸求dpi:
假设一台4寸的手机,分辨率为480*800,那么它的对角线像素点个数大概是
那么它每英寸的像素值就是
其dpi也就是233dpi
dp通用换算:
上面的公式是基于单位的。可以看到dp其实就是px,只是根据不同dpi的屏幕1dp会等于不同数量的px,而且这个比例是屏幕dpi与标准dpi(160dpi)的比值,也就是上面讲的pixel
ratio