繁体   English   中英

创建iOS通用应用程序,如何检测所有5个分辨率?

[英]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,默认后缀如下:

  • 非视网膜iPhone :image.png
  • Retina iPhone :image-hd.png
  • 非视网膜iPad :image-ipad.png
  • Retina 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
}

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

正如@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM