2011-03-16 38 views
6

我有一个关于更新我的应用程序的图形为iPhone 4iPhone - 适应图像视网膜显示器

我保持每个视图的分辨率达到了480×320点的视网膜显示的问题。

所以我想知道:假设我有一个100×50的UIImageView。 对于我的实际图像,我将加载为200 x 100像素@ 163 ppi或100 x 50像素@ 326 ppi更好?在“轻盈”方面它是一回事吗?这是首选的方式?

谢谢,你真棒

洛伦佐

+0

使用两个图像,一个用于视网膜,一个用于旧屏幕? – 2011-03-16 21:23:07

回答

16

1)定义您的UIImageView为100 x 50像素,如上所述。

2)有一个图像文件是100x50像素“MyImage”,第二个图像文件是200x100像素,并将其命名为“MyImage @ 2x”。

3)在您的代码中,请参阅图像文件“MyImage”。

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

+0

这是正确的。我要添加的唯一东西是命名带有其正确扩展名的文件(即“.png”)。 – 2011-03-17 03:06:01

+0

是的,我意识到这一点。因此,最好将尺寸加倍并使用命名功能来正确加载图像。但是让旧设备自动缩小图像呢?我看到可可触摸用一个简单的算法来做到这一点,但我担心的是RAM的使用。 – Lorenzo 2011-03-17 10:40:28

0

Hummm很好的问题。因为我不知道苹果公司是如何检查图像,也许你应该加载200x100(通过@@ 2x命名文件,如[email protected]而不是image.png)。

但是,如果您尝试其他选项并执行一些基准测试,请不要犹豫,告诉我们结果!

好运

0

请纠正我,如果我错了,我不是一个图形专家,但是这是我的问题的理解:

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

没有像图像文件的PPI那样的东西。在决定图像的分辨率时,您应该牢记目标设备的PPI,以便在屏幕上以正确的尺寸显示,而不必在软件中伸展它,并且会降低清晰度。 1英寸屏幕上显示的100x100图像具有100ppi,2英寸屏幕上的相同图像将以50ppi显示。

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

+0

某些图像格式确实支持在图像旁边存储DPI(≈PPI)值。但是,对于这种支持的实现差别很大,所以它不是真正需要依赖的东西。 – 2011-03-16 23:54:46