这一直困扰着我一段时间。我不明白为什么要包含低分辨率图像。例如,如果 3GS 无法找到低分辨率图像,它无论如何都会使用@2x 版本并以其原始分辨率显示它。那么为什么要通过包含所有半分辨率图像来增加应用程序的文件大小呢?
5 回答
哈雷说得对。系统不会自动将@2x 图像下采样到非视网膜尺寸,它不应该。3G 没有足够的内存来加载视网膜图像。它可能会阻塞您的应用程序并导致它因内存不足错误而退出。
iPad 1 的问题更加严重。相对于它的屏幕尺寸,iPad 1 的内存非常低,如果你试图让它加载视网膜大小的图像,它会很快窒息并死掉。
要缩放图像,系统必须以全尺寸加载它,并在每次绘制它时执行复杂的缩放操作。这是所有可能的世界中最糟糕的——速度较慢,内存是原来的 4 倍,而且图像看起来不太好。
在大多数情况下,您可以使以低分辨率创建的图标看起来更好,而不是让系统对其进行缩放。如果您不太关心缩放时图标的外观,那么仅使用@2x 版本可能就可以了。
其他海报提到了一些优秀的观点,但这里还有一个为后代:正如在http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#/中多次提到的那样/apple_ref/doc/uid/TP40006556-CH14-SW1,2x 图像可能更详细。换句话说,低分辨率图像不仅仅是 2x 图像的缩小版本;2x 图像可能包含较小图像中不存在的细节。
@2x 文件名适用于支持 Retina Display 的设备。
如果您打算将它们用于 iPhone 3GS 上的显示,请确保正确测试它们看起来是否与 Apple 希望您使用的低分辨率图像一样可接受。
原因是,如果没有可用的@2x,则当放大图像时,它们会变得像素化和模糊,因此您可能会认为将原始图像放大两倍可以解决问题。
但不是,因为视网膜设备仍会按比例放大(根据我的经验),而非视网膜设备会错误地显示图像。
这与 Apple 对其应用商店中应用的质量标准有很大关系