为什么会有2倍,3倍图
网络上会有很多的解释,这些解释都是对的。
通俗点说,出现这种区别是因为,屏幕尺寸没有屏幕分辨率增长的快(所以更高清了)。所以,对于iPhone6来说,1pt(代码中的尺寸值单位,也可理解为屏幕物理尺寸的换算单位)代表2px。对于iPhone6P来说,1pt代表3px。
所以对于iPhone6P和iPhone6来说,我们如果都想在屏幕上显示一个100ptx100pt的图片。
iPhone6就需要加载一个尺寸 200px x 200px 的图片。
iPhone6P需要加载一个尺寸 300px x 300px 的图片。
因为如果iPhone6加载一个100px x 100px的图片,它实际上要填充的是200px x 200px像素的空间。所以会被放大,看起来就模糊了。
分2倍3倍图,是为了让不同设备显示图片能够更加清晰。
但是我们开发的时候,设计师通常会将3种大小的图都输出出来,我们也通常选择将3种规格的图片都拖到工程中(现在1x的设备快绝迹了,所以也可以只添加2x和3x)。
如果仅仅是为了显示更清晰,我们为什么不只用3倍图呢?
只用3倍图,不同手机加载之后也只会去缩小,可以避免因放大而导致的模糊。还会因为引入更少的图片,减少包的大小。
看起来挺好的,也没什么问题。
但是如果只用3倍图,可能会引入如下问题(按照上面例子):
iPhone6加载3倍图时,首先会将3倍图数据加载到内存中,造成了一定的内存损耗,因为大多数情况下,2倍图会比3倍图尺寸小一些。
iPhon