IOS
- px:像素
- ppi:pixels per inch,每英寸像素数
- pt:point,ios开发使用的单位
- 关系
设备 | ppi | 比例系数 | 逻辑分辨率 | 实际分辨率 |
---|---|---|---|---|
iphone3g | 163 | 1x | 320*480 | 320*480 |
iphone4 | 326 | 2x | 320*480 | 640*960 |
iphone8 | 326 | 2x | 375*667 | 750*1334 |
iphone8+ | 401 | 3x | 414*736 | 1242*2208 |
iphoneX | 458 | 3x | 375*823 | 1125*2436 |
ios设备的物理尺寸(宽高的像素数,对角线的长度)由屏幕决定,比例系数由ppi决定(向上取整),逻辑分辨率由实际分辨率和比例系数决定。(或者可以说实际分辨率由逻辑分辨率*比例系数得到?我也不清楚苹果是怎么设计生产的)
所以,比如,15pt,只能代表最终显示在屏幕上为15/30/45个像素,而实际的物理长度(多少厘米 ...)和所占比例(15/320 ...)无法确定,例ip8和ip8+
Android
- px:像素
- dpi:dots per inch,每英寸点数(与ios中的ppi同理)
- dp:dip,device independent pixels,设备无关像素
- dpi/160:比例系数,代表1dp实际显示的像素数
- 关系
等级 | dpi | 比例系数 |
---|---|---|
MDPI | 160 | 1.0 |
HDPI | 240 | 1.5 |
XHDPI | 320 | 2.0 |
XXHDPI | 480 | 3.0 |
系数比例由dpi/160得到,带小数点
dp*比例系数=实际像素数,即160dp显示效果为1英寸
即1dp在不同Android设备上显示出来的物理长度相同
所以,由于不同Android的dpi不同,相同dp显示的物理长度相同,但是所占比例不一定相同