iOS 应用程序 - 为啥同时包含 @2x 和低分辨率图像?

Posted

技术标签:

【中文标题】iOS 应用程序 - 为啥同时包含 @2x 和低分辨率图像?【英文标题】:iOS apps - why include both @2x and low-res images?iOS 应用程序 - 为什么同时包含 @2x 和低分辨率图像? 【发布时间】:2012-05-14 01:12:03 【问题描述】:

这一直困扰着我一段时间。我不明白为什么要包含低分辨率图像。例如,如果 3GS 无法找到低分辨率图像,它无论如何都会使用@2x 版本并以其原始分辨率显示它。那么,为什么要通过包含所有半分辨率图像来增加应用的文件大小呢?

【问题讨论】:

缩放会消耗系统资源。如果您在应用程序中有许多资产,则缩放所有资产可能会影响性能。而且缩放后的图像看起来不太好。 【参考方案1】:

哈雷说得对。系统不会自动将@2x 图像下采样到非视网膜尺寸,它不应该。 3G 没有足够的内存来加载视网膜图像。它可能会阻塞您的应用程序并导致它因内存不足错误而退出。

iPad 1 的问题更加严重。相对于它的屏幕尺寸,iPad 1 的内存非常低,如果你试图让它加载视网膜大小的图像,它会很快窒息并死掉。

要缩放图像,系统必须以全尺寸加载它,并在每次绘制它时执行复杂的缩放操作。这是所有可能世界中最糟糕的——速度较慢,内存是原来的 4 倍,而且图像看起来不太好。

【讨论】:

如果我们不打算支持 iPhone 3GS 或更早版本,我们是否可以假设提供@2x 图形是完全可以接受的? 对于仅限 iPhone 的应用程序,是的。但是,对于 iPad,仍然需要支持 iPad mini 和 iPad 2。【参考方案2】:

在大多数情况下,您可以让以低分辨率创建的图标看起来更好,而不是让系统对其进行缩放。如果您不太关心缩放时图标的外观,那么仅使用@2x 版本可能就可以了。

【讨论】:

【参考方案3】:

其他发帖者提到了一些优秀的点,但这里还有一个供后人参考:正如http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW1 中多次提到的,2x 图像可能更详细。换句话说,低分辨率图像不仅仅是 2x 图像的缩小版本; 2x 图像可能包含较小图像中不存在的细节。

【讨论】:

【参考方案4】:

@2x 文件名适用于支持 Retina Display 的设备。

如果您打算将它们用于 iPhone 3GS 上的显示,请确保正确测试它们看起来是否与 Apple 希望您使用的低分辨率图像一样可接受。

【讨论】:

【参考方案5】:

原因是,如果没有可用的@2x,则当放大图像时,它们会变得像素化和模糊,因此您可能会认为将原始图像放大两倍可以解决问题。

但不会,因为 Retina 设备仍会按比例放大(根据我的经验),而非 Retina 设备会错误地显示图像。

这与 Apple 对其应用商店中应用的质量标准有很大关系

【讨论】:

以上是关于iOS 应用程序 - 为啥同时包含 @2x 和低分辨率图像?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 iPhone 6 使用@2x 图片资源?

拥有@2x 图像资源而没有@1x 资源

Adobe Air iOs 包含“资源”文件夹时出现打包错误。为啥?

如何为 tvOS 包含 1x 1080p 和 2x 4K 视频资产

为啥移动端需要@2x或者@3x的图片

为啥Luhn算法乘以2?