在 iPhone 中使用图片(普通和 @2x)

4

我正在制作一个使用图片作为按钮的应用程序。我提供了普通图片和@2x图片,但我不确定应该使用哪个。如果我使用normal.png或normal@2x.png,基本上没有区别。然而,我读到过使用@2x需要更多的内存,所以我觉得我不应该这样做。然而,当我在iPad模拟器中启动我的应用程序时,如果使用普通大小的图片,它看起来很糟糕,因为它需要调整大小。当我使用@2x图像时,它看起来正常。所以有什么建议应该如何解决这个问题?

2个回答

9

为了支持Retina设备,您应该在应用程序中同时包含.png@2x.png格式的图片。这将为用户提供良好的用户体验。

在您的代码中,不需要显式指定@2x后缀,因为操作系统会自动处理这一点。例如,如果您在项目中包含image.pngimage@2x.png,并通过以下方式访问它:

UIImage* image = [UIImage imageNamed:@"image"];

操作系统会为您选择正确的图像(非视网膜设备使用.png,视网膜设备使用@2x.png)。只要遵循一般的内存管理指南,就不需要担心每个图像的内存使用差异。

我理解你的意思,但是当我在iPad模拟器上运行我的应用程序时,使用普通图片会显得很糟糕,而使用@2x的图片则看起来不错。我的意思是当我以2倍尺寸运行它时。那么这个问题怎么解决呢? - gabrjan
你确定普通图片的尺寸是正确的吗?image.png应该具有正确的尺寸,以便在标准分辨率设备上看起来正常和正确,而@2x应该具有双倍分辨率,以便在视网膜设备上看起来正常和正确。 - WDUK
是的,这都很正常。2倍大意味着比原来多两倍,也就是4倍,因为2*2。在Retina iPhone上看起来很好,但是在iPad上无法缩放到2倍。 - gabrjan
然而在iPad上它不能被缩放到2倍,是的,它可以。Retina iPad设备存在。在iOS模拟器中将您的设备类型更改为“iPad(Retina)”。 - WDUK
哦,那个“2x”的按钮!是的,正如詹姆斯所说,将iPhone应用程序运行在非Retina iPad上,将始终使用普通图像,而Retina iPad将仅使用@2x图像。 2x按钮将简单地拉伸视图,并且它始终会看起来有点模糊。 如果您想让它看起来漂亮,请创建一个通用应用程序,其中包括iPhone和iPad的视图。 - WDUK
显示剩余6条评论

3

您应该:

  • 在您的应用程序中包含常规和@2X图像。
  • 完成应用程序后,请检查其内存占用情况(应用程序是否耗尽内存或经常出现内存警告?一旦压缩,应用程序是否过大并且下载时间过长,超出了您的期望?)
  • 如果内存是一个问题,请开始删除@2X资源。您应该根据资产的大小和调整大小后的外观来消除资产。例如,全屏纯色背景在调整大小时不会有太大的区别,并且可能为您节省一些内存。带有大量复杂线条的小按钮在调整大小时会明显变差,但不会占用太多RAM。

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