视网膜显示器的矩形尺寸是多少?

Posted

技术标签:

【中文标题】视网膜显示器的矩形尺寸是多少?【英文标题】:what rect size for retina display? 【发布时间】:2012-07-18 09:30:34 【问题描述】:

我只是想知道我的图像是否有 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)?

【问题讨论】:

您也必须为视网膜显示器使用相同的尺寸(320*480 或 480*320)。在视网膜或正常显示的情况下,您可以考虑这些值。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

对于非视网膜图像 (myImage.png) 尺寸应为 21x21,您应放置另一个尺寸为 42x42 且带有 @2x 后缀 (myImage@2x.png) 的图像。在代码中你可以写一些类似的想法

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

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

正确的尺寸应该是

CGRectMake(0,0,21,21)

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

以上是关于视网膜显示器的矩形尺寸是多少?的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone 4 视网膜显示屏中显示图像

iPhone模拟器显示尺寸错误的图像

用于视网膜显示的 uiwebview 中的 iOS 内容大小

用纯 css 显示视网膜显示图像

iOS UI 自定义按钮图片

iOS - 图像视网膜模糊