从px说起

移动设备的像素

我们都知道iPhone5屏幕的像素是6401136,然而,当你想把640px1136px的图片完全显示在iPhone的屏幕上时,会发现图片并不能全部显示。

因此,这个640*1136的单位和我们设置的px并不是一样的,iPhone指的是dp,也就是我们常说的物理像素,而我们使用的px是逻辑像素,逻辑像素于物理像素与PPI(屏幕每英寸的像素数量)和dpr(设备像素缩放比)有关。

PPI的计算

PPI指的是屏幕每英寸的像素数量,这里的像素指的是物理像素,也就是设备的像素,PPI越高,图片越清晰。

PPI的计算还是以iPhone5为例:iPhone5的屏幕是4英寸,所以我们求得4英寸长度上的像素总数,除以4,就可以得到iPhone5的PPI了,计算方式如下:

PPI=√(1136²+640²)/4 = 326,所以iPhone5的PPI就是326。

dpr的获取

dpr,也就是设备像素缩放比的获取如下图:

从图上我们可以知道iPhone5的dpr等于2,现在我们可以看下一个公式了。
8
1px = (dpr)² * dp ,所以,1px在iPhone5上就相当于4dp,这是在平面上看,那如果在某一个纬度上,1px = dpr * dp,所以在iPhone5上,1px = 2dp,那么iPhone5的屏幕应该是320px*568px。

因此我们的图片在iPhone5的屏幕上时显示不全的。

计算流程图