iPhone - 适应视网膜显示屏的图像

6
我有一个关于更新我的应用程序图形以适配iPhone 4的Retina显示屏的问题。
我将每个视图的分辨率保持在480 x 320点。
所以我想知道:假设我有一个100 x 50的UIImageView。 对于我要加载的实际图像来说,200 x 100像素@163 ppi或100 x 50像素@326 ppi更好?从“轻量级”方面来看,它们是一样的吗?哪种方法更受欢迎?
谢谢,你很棒
洛伦佐

使用两张图片,一张用于高清屏幕,另一张用于旧屏幕? - user142019
3个回答

16

1) 将您的UIImageView定义为100 x 50像素,就像您上面描述的那样。

2) 拥有一个100x50像素的图像文件"MyImage"和第二个200x100像素的图像文件,并将其命名为"MyImage@2x"。

3) 在您的代码中引用图像文件"MyImage"。

iOS会自动选择正确的图像。在没有视网膜显示屏(即iPhone 3GS)的旧设备上,将使用"MyImage"文件。在具有视网膜显示屏的新设备上,将使用"@2x"版本。


这是正确的。我唯一要补充的是用正确的扩展名(即“.png”)命名文件。 - Jeffrey Berthiaume
是的,我知道这一点。因此最好是将大小加倍,并使用命名功能使图像正确加载。但是让旧设备自动缩小图像怎么样?我看到Cocoa Touch使用简单的算法来实现这一点,但我担心的是RAM的使用情况。 - Lorenzo

0

嗯,好问题。

由于我不知道苹果是如何检查图像的,也许你应该加载200x100的图像(通过将文件命名为@2x,例如image@2x.png而不是image.png)。

但如果你尝试另一种选择并进行一些基准测试,请务必告诉我们结果!

祝你好运!


0

如果我的理解有误,请指正,因为我不是图形专家。以下是我对此主题的理解:

PPI - 每英寸像素(或点) - 它不是图像数据的属性,而是屏幕(硬件)的属性,理论上你不能真正控制它。换句话说,PNG文件不描述要显示每英寸多少点,它只描述每个像素的颜色。

图像文件没有PPI这样的东西。在决定图像分辨率时,应该考虑目标设备的PPI,以便它在屏幕上以正确的大小显示,而不必在软件中拉伸它并失去锐度。在1英寸屏幕上显示的100x100图像将具有100ppi,同样的图像在2英寸屏幕上将以50ppi显示。

因此简而言之: 图像没有PPI,它们有分辨率,这将决定文件的大小。


一些图像格式确实支持在图像旁存储DPI(≈PPI)值。然而,对于该支持的实现方式差异相当大,因此这并不是一个可靠的依据。 - Noah Witherspoon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接