创buildiOS通用应用程序,如何检测所有5个决议?
标题相当好说。 我正在创build一个iOS应用程序,并且正在添加艺术资产。 我有iPhone低分辨率(iPhone 3GS或更低),iPhone视网膜(iPhone 4或更高),iPhone 5,iPad低分辨率和iPad高分辨率5背景。
什么是处理基于设备加载哪个背景的最好方法?
另外,是否有一种方法来testing模拟器中所有5的样子? 现在,当然,你只能testingiPhone和iPad。
此外,这是一个游戏,我使用cocos2d,如果这将有所作为。
对于cocos2D-iPhone,默认的后缀如下:
- 非视网膜iPhone :image.png
- Retina iPhone :image-hd.png
- 非视网膜iPad :image-ipad.png
- 视网膜iPad :image-ipadhd.png
来自维基页面的注意事项:
警告 : 不build议使用“@ 2x”后缀。 苹果会以特殊的方式处理这些图像,这可能会导致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 }
正如其他人所说的,您可以通过模拟器(硬件 – >设备)testing所有设备,
正如@Srikanth所提到的,包括image.png和image@2x.png,系统会自动为高分辨率屏幕select较高分辨率的图像,为低分辨率屏幕自动select较低分辨率的图像。 这适用于iPhone和iPad。
对于iPhone 5,屏幕仍然是视网膜。 系统会自动select您的 – @ 2x图像。 您可以在界面生成器或代码中定义自动布局(或弹簧和支柱)。
如果由于某种原因,您绝对需要一个特定于iPhone 5屏幕的图像,我相信您可以添加一个image-568h@2x.png,系统将自动select4英寸屏幕。
我能想到的唯一原因就是在你的捆绑包中包含一个-568h @ 2x的图像用于启动图像:您需要一个特定的4英寸屏幕。
另外,关于模拟器:您可以testing所有5个分辨率。 在模拟器菜单栏(屏幕顶部)select硬件>设备。 在这里您可以select所有5种分辨率。
每个图像可以有两个版本
image.png,image@2x.png
系统会自动selectimage@2x.png,如果它是一个视网膜设备,你可以参考image.png
同样在模拟器中,你可以去硬件 – >设备,然后select,如果你想看到视网膜或没有。
如果您使用的是cocos2d,那么您需要在视网膜分辨率的图像上使用-hd后缀。 看看他们的维基页面的更多信息。
我自己并不使用cocos2d,但从它的声音来看,iPhone 5的屏幕分辨率是通过相应地调整布局来处理iPad屏幕分辨率的处理。 对于cocos2d和iPhone 5,在stackoverflow中search应该会产生一些好的结果。