为什么我们需要这3种特定的图像类型?
如果我的应用上有一个带有背景图像的按钮,例如50像素x 50像素,为什么我需要此图像的3个版本?什么阻止我制作一张高得多的图像,例如700x700,所以当它在任何iPhone上缩小时它不会低于设备所需的最大值?
我唯一能想到的是它占用了更多的空间,但对于简单的应用程序/一个简单的按钮,它似乎不会引起任何问题。我在一些设备上尝试过,当我模拟它并执行此方法时,它们之间没有区别。然而,当我更多地深入了解应用程序和内容时,我确信这种技术背后有实质内容。
答案 0 :(得分:61)
在图像资源中需要3种图像,因为在缩放或像素方面
有3种Apple设备(iPhone和iPad)与1 pixel = 1 point
@ 1x(较旧的iPhone和iPad设备)相关的普通设备
Retina设备的术语为4 pixels(2 x 2) = 1 point
@ 2x(iPhone 4 +)
Retina iPhone6和iPad的术语为9 pixels (3 x 3) = 1 point
@ 3x(iPhone6 +)
因此,为了在3个尺度上提供相同的图像,iOS决定显示哪些设备的图像。希望可以帮助您理解这一点。
修改强>
答案 1 :(得分:57)
如果您没有确切的尺寸,可能会发生两件事:
<强>倍增强>
@3x
或@2x
可以从@1x
升级,但通常视觉效果模糊,粗线条看起来不太好。来自@3x
的升级版@2x
可能会更糟糕,因为必须使用子像素。
<强>降尺度强>
通常,结果比升级要好得多,然而,这并不适用于所有图像。如果1px
图片上有@3x
边框,则在将其缩小到@1x
后,边框将不可见(0.33像素)。这同样适用于图像中的任何小物体。缩小规模会破坏所有细节。
一般情况下 - 为了使图像看起来更完美,您需要避免缩小和放大。您始终只能使用@2x
或@3x
图片,并且只有在看到视觉问题时才会添加其他比例。使用更高的分辨率不会改善缩小尺寸。高分辨率仅用于避免升级。从高级别(例如@100x
)降级到@1x
不会产生比@3x
缩减更好的结果。
答案 2 :(得分:7)
这是因为如果你提供一个高分辨率的图形,那么用户就会浪费空间。设备。由于应用程序切片,设备将下载(从App Store)只有实际适合设备的部分(因此视网膜设备不会下载非视网膜图形)。这就是为什么Apple创建资产目录和遵循这种规则的原因。他们在会议中描述了这一点。
简而言之,就是减少内存/磁盘使用量,以便提高性能和用户体验
答案 3 :(得分:5)
首先,您需要了解点与像素的行为。在非视网膜设备上,点与像素比率 1point = 1pixel 。在视网膜设备上,有两个比率: 1点= 2x2 像素,取决于屏幕尺寸, 1点= 3x3 像素,因为像素密度,在非视网膜上观看四倍。这就是为什么你需要这3种类型的图像,以最高分辨率显示。
答案 4 :(得分:3)
补充Sulthan说的话:
因为您没有为特定设备提供适当的图像,所以它必须缩小或放大。这些过程将耗尽您的记忆和处理,从而导致性能下降,具体取决于您一次执行的图片数量和图片大小。
答案 5 :(得分:2)
如果您只提供一张大图片,则会遇到几个问题:
正如您所看到的,只制作一张图片会影响您应用的性能和质量,并且会对那些使用较旧设备的用户产生不成比例的影响。这是因为:
由于这个原因,用户可能会感到不快,这对你不利。因为根据我的经验,不满意的用户对应用评分的可能性是快乐用户的10倍。你不想那样,是吗? :)