Android 新手必看 px、density、dpi、dp的关
2019-02-20 本文已影响99人
ZuYuan
关于这四者很多人弄不清楚,网上许多文章也解释得很“迷”。我也是很久才搞清楚它们的关系,现在我就好好解释下这四者关系。
px:
它最简单,它就是像素单位,一个px代表着一个像素点。对于手机,我们通常说的1080✖1920就是指该手机屏幕,宽有1080个像素点,高有1920个像素点,即是1080px✖1920px。
density:
它指的是屏幕密度,但是千万不要被这四个字给误导了,它的大小跟手机屏幕大小没有关系。下面我举几个例子:
- 1080*1920:density为3.0
- 1080*2160:density为2.75
- 720*1280:density为2.0
也就是说density只是根据屏幕的长、宽值来设立的一个值,它只跟屏幕的高总像素点和宽总像素点有关系。
dpi
只要density理解到了,dpi的理解就没有问题了,它就只跟density有关系。
关系为:dpi = density✖160
这里的160也是一个dpi值,只是160dpi被置为标准dpi。
dp
dp也被称作为dip,它是为了屏幕适配而专门出现的,为什么说是为了适配?因为它是px和density之间的产物。
关系:px = density ✖ dp
px = (dpi / 160)✖dp
总结
px和density就是屏幕自带的东西,而dpi和dp则是通过计算得来的东西。将density乘以160得到dpi是为了什么呢?这里我也没深入查询,我觉得dpi更像是作为一种标准出现。
例如Android手机的:160dpi、320dpi、440dpi、480dpi...