0

我的应用程序有一个填充屏幕的背景图像。我想根据我们是否在 Retina Display 设备上显示正确的 .png 文件。我已经为 iPhone 和 iOS 添加了所有大小正确的 .png 文件。是否可以 ?如果没有,我应该如何正确处理?

我有 XCode 4.3.2 和 iOS 5.1 作为部署目标。

4

2 回答 2

4

如果您正确命名您的图形(例如@2x,在 png 文件的后缀中添加“”),iOS 就足够聪明,可以在适当的设备和显示器上使用您的 Retina 显示图形。特别是如果您在 XIB 文件中设计的用户界面中使用 UIImageViews 或控件或其他任何东西。

如果你在做程序化的图像(即你定义了一个插座然后通过类似“ [UIImage imageNamed:]”的方式抓取图像,iOS 仍然足够聪明,可以为你拾取高 rez 图像。同样,只要你正确地命名了你的图形。

StackOverflow 上还有其他问题可能会对您有所帮助,例如:

如何在通用应用程序中同时支持 iPad 和 iPhone 视网膜图形

如何为视网膜显示激活@2x 高分辨率图形?

于 2012-06-14T02:12:49.243 回答
2

这可能会奏效。首先,它检查屏幕是否有视网膜显示,如果有,则将背景图像设置为视网膜图像。如果它没有视网膜显示器,则背景图像是常规图像。你可以把它放在viewWillAppearor中viewDidLoad

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
    ([UIScreen mainScreen].scale == 2.0)) {

    // Retina display
    UIImage *backgroundImage = [UIImage imageNamed:@"retinaImage.png"];

} else {

    // Non-Retina display
    UIImage *backgroundImage = [UIImage imageNamed:@"nonRetinaImage.png"];

}

希望这可以帮助!

于 2012-06-14T03:44:31.427 回答