Android 屏幕适配 dip px density 概念说明

431 阅读2分钟

概念解释

名词解释
Px(Pixel像素)不同设备显示效果相同,这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被小。
Screen Size(屏幕尺寸)一般所说的手机屏幕大小如1.6英寸、1.9英寸、2.2英寸,都是指的对角线的长度
Resolution(分辨率)指手机屏幕垂直和水平方向上的像素个数。比如分辨率是480*320,则指设备垂直方向有480个像素点,水平方向有320个像素点。
dpi(dots per inch  像素密度)指每英寸中的像素数,如160dpi指手机水平或垂直方向上每英寸距离有160个像素点。假定设备分辨率为320*240,屏幕长2英寸宽1.5英寸,dpi=320/2=240/1.5=160。该值对应于 DisplayMetrics.densityDpi
Dip(Device-independent pixel,设备独立像素)同 dp,可作长度单位。不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dip和具体像素值的对应公式是 px = (dpi/160) * dp,除以160(以dip为160的屏幕为基准屏幕)的原因是在dpi为160的设备上dp值等于px值
density(DisplayMetrics.density)density = dpi/160,可用于 px 与 dip 的互相转换,px = density * dp
Sp(ScaledPixels 放大像素)主要用于字体显示(best for textsize)。根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。

参考:my.oschina.net/bigcoffic/b…