视网膜显示的直径大小?

时间:2012-07-18 09:30:35

标签: objective-c ios xcode retina-display

我只是想知道我的图像是否有x * y尺寸。

当视网膜显示设备显示用CGRectMake(0,0,x,y)创建的图像时,这是一个像素化的图像吗?

正确的尺寸是CGRectMake(0,0,x/2,y/2)吗?

如何判断图像的矩形大小?

我是否需要使用contentScaleFactor = [UIScreen mainScreen].scale;

或者可能除以它:CGRectMake(0,0,x/contentScaleFactor,y/contentScaleFactor)

3 个答案:

答案 0 :(得分:7)

衡量尺寸in points instead of pixels。视网膜和非视网膜显示装置都具有相同的点。在非视网膜显示设备上,一个点等于一个像素,但是在视网膜显示设备上,一个点等于两个像素。因此,您将使用CGRectMake(0,0,x,y)

要避免像素化图像,请务必提供带有@2x后缀的双分辨率图像。例如,如果您的常规图片名为foo.png,则视网膜版本应命名为foo@2x.png

编码时,请始终参考foo.png。当您的应用在视网膜显示设备上运行时,将自动使用双分辨率图像(foo@2x.png)。

答案 1 :(得分:1)

对于非视网膜图像(myImage.png),大小应为21x21,您应该放置另一张图像,其大小为42x42,后缀为@ 2x后缀(myImage@2x.png)。在代码中你可以写一些想法

UIImage *img = [UIImage imageNamed:@"myImage"];

此调用将根据iPad自动选择正确的文件。

正确的尺寸应为

CGRectMake(0,0,21,21)

答案 2 :(得分:1)

术语“视网膜”和“非视网膜”与显示屏的分辨率有关,而与显示屏的尺寸无关。分辨率与每英寸像素数(点)有关。

在这种情况下进行编码时,尺寸将保持不变,只会更改图像分辨率。

要了解如何在应用程序包中使用不同大小的资源,您可以查看此链接http://panditpakhurde.com/tech/?p=365