5

标题说得很好。我正在创建一个 iOS 应用程序,并且正在添加艺术资产。我有 iPhone 低分辨率(iPhone 3GS 或更低版本)、iPhone 视网膜(iPhone 4 或更高版本)、iPhone 5、iPad 低分辨率和 iPad 高分辨率的 5 个背景。

根据设备处理加载哪个背景的最佳方法是什么?

另外,有没有办法测试模拟器中所有 5 个的样子?当然,现在你只能测试 iPhone 和 iPad。

另外,这是一个游戏,如果这会有所作为,我正在使用 cocos2d。

4

4 回答 4

7

对于 cocos2D-iPhone,默认后缀如下:

  • 非视网膜 iPhone : image.png
  • 视网膜 iPhone : image-hd.png
  • 非视网膜 iPad : image-ipad.png
  • 视网膜 iPad : image-ipadhd.png

维基页面的注释:

警告建议使用“@2x”后缀。Apple 以一种特殊的方式处理这些图像,这可能会导致您的 cocos2d 应用程序出现错误。

Cocos2D 将自动检测您的硬件并加载相应的图像。您可以更改 AppDelegate.m 中的默认后缀。

AFAIK,iPhone 5 图像没有后缀,因此您可以通过检测设备高度来手动检测和加载自定义精灵:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
    // code for iPhone 5
} else {
    // code for all other iOS devices
}

正如其他人所说,您可以通过模拟器测试所有设备(硬件->设备)

于 2012-12-08T06:40:59.097 回答
2

正如@Srikanth 提到的,包括 image.png 和 image@2x.png,系统会自动为高分辨率屏幕选择高分辨率的屏幕,为低分辨率屏幕选择较低的分辨率。这适用于 iPhone 和 iPad。

对于 iPhone 5,屏幕仍然是 Retina。系统会自动选择你的 -@2x 图像。您可以在 Interface Builder 或代码中定义自动布局(或弹簧和支柱)。

如果出于某种原因您绝对需要特定于 iPhone 5 屏幕的图像,我相信您可以添加 image-568h@2x.png,系统会自动为 4 英寸屏幕选择该图像。

我能想到您会在捆绑包中包含 -568h@2x 图像的唯一原因是用于启动图像:您需要一个特定于 4 英寸屏幕的图像。

此外,关于模拟器:您可以测试所有 5 种分辨率。在模拟器菜单栏中(屏幕顶部)选择硬件>设备。在这里,您可以选择所有 5 种分辨率。

于 2012-12-08T02:52:56.060 回答
1

每个图像可以有两个版本

图像.png,图像@2x.png

如果它是 Retina 设备,系统将自动选择 image@2x.png

同样在模拟器中,您可以转到硬件-> 设备,然后选择是否要查看视网膜。

于 2012-12-07T21:45:26.543 回答
1

如果您使用的是 cocos2d,那么您需要在您的视网膜分辨率图像上使用 -hd 后缀。查看他们的wiki 页面以获取更多信息。

我自己不使用 cocos2d,但从它的声音来看,iPhone 5 的屏幕分辨率的处理方式与 iPad 的屏幕分辨率处理方式相同,方法是相应地调整布局。在 stackoverflow 中搜索应该会为 cocos2d 和 iPhone 5 产生一些好的结果。

于 2012-12-07T21:54:50.380 回答