标题说得很好。我正在创建一个 iOS 应用程序,并且正在添加艺术资产。我有 iPhone 低分辨率(iPhone 3GS 或更低版本)、iPhone 视网膜(iPhone 4 或更高版本)、iPhone 5、iPad 低分辨率和 iPad 高分辨率的 5 个背景。
根据设备处理加载哪个背景的最佳方法是什么?
另外,有没有办法测试模拟器中所有 5 个的样子?当然,现在你只能测试 iPhone 和 iPad。
另外,这是一个游戏,如果这会有所作为,我正在使用 cocos2d。
标题说得很好。我正在创建一个 iOS 应用程序,并且正在添加艺术资产。我有 iPhone 低分辨率(iPhone 3GS 或更低版本)、iPhone 视网膜(iPhone 4 或更高版本)、iPhone 5、iPad 低分辨率和 iPad 高分辨率的 5 个背景。
根据设备处理加载哪个背景的最佳方法是什么?
另外,有没有办法测试模拟器中所有 5 个的样子?当然,现在你只能测试 iPhone 和 iPad。
另外,这是一个游戏,如果这会有所作为,我正在使用 cocos2d。
对于 cocos2D-iPhone,默认后缀如下:
维基页面的注释:
警告:不建议使用“@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
}
正如其他人所说,您可以通过模拟器测试所有设备(硬件->设备)
正如@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 种分辨率。
每个图像可以有两个版本
图像.png,图像@2x.png
如果它是 Retina 设备,系统将自动选择 image@2x.png
同样在模拟器中,您可以转到硬件-> 设备,然后选择是否要查看视网膜。
如果您使用的是 cocos2d,那么您需要在您的视网膜分辨率图像上使用 -hd 后缀。查看他们的wiki 页面以获取更多信息。
我自己不使用 cocos2d,但从它的声音来看,iPhone 5 的屏幕分辨率的处理方式与 iPad 的屏幕分辨率处理方式相同,方法是相应地调整布局。在 stackoverflow 中搜索应该会为 cocos2d 和 iPhone 5 产生一些好的结果。