前几篇里面有提到分辨率
这个词儿,今天这篇就来讲讲容易混淆的几个概念。
就拿小米新出的全面屏MIX2来说,看我从官网上截取的屏幕相关配置信息。
屏幕尺寸
大家都知道屏幕是个长方形,一般从对角线长度来表示屏幕大小。比如MIX2的屏幕尺寸就是5.99英寸。
1 英寸 = 2.54 厘米
屏幕分辨率
屏幕分辨率指的就是屏幕上显示的像素个数。小米MIX2屏幕的长边和短边上的像素个数分别是2160和1080,那么整块屏幕上的像素个数就是2160*1080
,那么对角线上的像素个数就是1080 * √5
屏幕像素密度
屏幕密度也就是每英寸像素的个数,即Pixels Per Inch
,缩写为PPI,那么小米MIX2的PPI就是
(1080 * √5) / 5.99 ≈ 403.16
符合小米MIX2官网上缩写的403 PPI
。
可想而知,PPI越大,表明每英寸上面的像素越多,也就表明可以表示的颜色越多,图片就更加清楚
上面几个概念讲清楚之后,下面再来说说苹果的Retina显示屏。
Retina这种技术主要就是在一个屏幕里面塞入更多的像素,提高PPI。也从侧面表示出,像素是没有固定大小的。
就拿我从苹果官网上截图来看,iMac有Retina和非Retina屏幕之分
可以看到,同样大小(同样对角线长度)的屏幕上,分辨率不一样,最终显示的效果估计大家也都知道。
再来看看实际开发中可能用到的几个概念
-
px
- pixel即像素点。一般UI给的图上标注都是px的
-
ppi
- pixel per inch,每英寸像素数,屏幕像素密度,该值越高,屏幕越细腻
-
dpi
- dot per inch,每英寸多少点。该值越高,图片越细腻。可以认为dpi等于ppi
-
dp
- dip(density independent pixels)。Android里面的长度单位,1dp表示在屏幕像素点密度为160ppi时1px的长度。
1dp = (屏幕密度ppi/160)px
- dip(density independent pixels)。Android里面的长度单位,1dp表示在屏幕像素点密度为160ppi时1px的长度。
-
sp
- scale independent pixels. Android开发里面字体大小单位,一般情况下sp=dp,但是sp可以根据用户的字体大小首选项进行缩放。
-
pt
- point,iOS开发单位。
1pt=(DPI/72)px
,当屏幕密度为72ppi的时候,1pt=1px,当屏幕密度为144ppi的时候,1pt=2px
- point,iOS开发单位。