[英]Creating iOS Universal App, How To Detect All 5 Resolutions?
标题很好说。 我正在创建一个iOS应用程序,并且正在添加艺术资产。 我有5个背景适用于iPhone低分辨率(iPhone 3GS或更低),iPhone视网膜(iPhone 4或更高),iPhone 5,iPad低分辨率和iPad高分辨率。
处理基于设备加载哪个背景的最佳方法是什么?
另外,有没有办法测试模拟器中所有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种分辨率。
每个图像可以有两个版本
image.png,image @ 2x.png
如果是视网膜设备,系统会自动选择image@2x.png,你可以参考image.png
同样在模拟器中,您可以转到硬件 - >设备,然后选择是否要查看视网膜。
如果你正在使用cocos2d,那么你需要在你的视网膜分辨率图像上使用-hd后缀。 查看他们的维基页面以获取更多信息。
我自己不使用cocos2d,但从它的声音来看,iPhone 5的屏幕分辨率的处理方式与iPad的屏幕分辨率相同,通过相应调整布局。 在stackoverflow中搜索应该会为cocos2d和iPhone 5带来一些好的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.