我有一个在iPhone和iPad上运行的应用程序,大多数此应用程序的预期设备将是除iPad mini外的视网膜设备。我有很多图像包含在这个应用程序中。 我的问题是,如果我决定只使用@ 2x图像,iOS会将它们降级到非视网膜设备吗?所以我只运送视网膜图像?如果这是正确的,那么实施它是一个坏主意?视网膜图像,非视网膜设备
回答
iOS不会降级这些图像。但是,如果您仔细设置图像浏览的框架,它不会产生任何问题。
真的吗?它不会降级?它通常会从非视网膜升级到视网膜图像?我可以强制降级吗? –
不,它不会降级或升级。但是如果你的画面很小而且图像很大,那么它可以容纳较小画面中的较大图像,反之亦然。 – Apurv
如果你的图像视图有contentMode =扩展您的图像将被调整到非视网膜
正常显示,但有一些问题:
1)对非Retina如果显示缩放视网膜图像设备您将有图像边缘模糊。所以如果你想使用这个图像的UI - 这将是一个坏主意。
2)有时Xcode的故事板不一样,如果你只有@ 2倍的图像(例如,在uibuttons)规模的正确图像
如果您在Interface Builder将图像生成,并设置在图像属性上UIImageView
以[email protected]
为例,iOS不会知道它是高分辨率的“2x”图像。事实上,在视网膜显示屏上,iOS会查找名为[email protected]@2x.png
的图像。由于它不会找到它,它会将图像的比例因子设置为1.0。
contentMode
属性(只是XCode中的“模式”)将决定是否出现图像的任何缩放以适合UIImageView的约束。您可能希望将模式设置为“Aspect Fit”,以便根据视网膜和非视网膜显示屏的需要缩放高分辨率图像。一般情况下,图像将如Interface Builder中所示显示。
如果你正在使用UIImage的imageNamed
或类似的函数来加载图像,并只指定image
(其中“image.png”不存在,但“[email protected]”),那么iOS会真正找到在非视网膜显示器上的图像,尽管比例因子将为1.0。如前所述,您需要将其缩放以适合您的视图。该图像将在视网膜设备上正常工作,并且比例因子将被设置为2.0,因为iOS首先查找“2x”图像,而其他文件是否存在则无关紧要。
这是来自Apple的文档上imageNamed
:
在运行iOS 4或更高版本的设备,该行为是相同的,如果 设备的屏幕具有1.0的比例。如果屏幕的比例为2.0,,则此方法首先搜索具有相同文件名的图像文件 并附加@ 2x后缀。例如,如果文件的名称是 按钮,它首先搜索按钮@ 2x。如果它找到一个2倍,它将加载 该映像并将返回的UIImage对象 的scale属性设置为2.0。否则,它加载未修改的文件名并将比例 属性设置为1.0。有关支持具有不同比例因子的图像的 的更多信息,请参阅iOS应用程序编程指南。
如果可能的话,你应该包括视网膜和非视网膜图像。使用比所需更高分辨率的图像会对内存和性能产生负面影响。
- 1. 知道设备类型 - 视网膜/非视网膜
- 2. 在视网膜和非视网膜设备上的renderInContext
- 3. 绘图视网膜与非视网膜图像
- 4. 视网膜与非视网膜iOS
- 5. 仅支持带视网膜图像的iPad非视网膜
- 6. 视网膜上的非视网膜图像iPad
- 7. UIImageView中的视网膜/非视网膜图像
- 8. 视网膜图形与非视网膜图形管理
- 9. 视网膜和非视网膜显示屏支持图形
- 10. Cocos2d中的视网膜和非视网膜图形
- 11. 可以在视网膜上使用非视网膜图形吗?
- 12. 创建视网膜屏幕截图编程导致非视网膜图像
- 13. 非视网膜图像有多重要?
- 14. 视网膜图像中视网膜模拟器
- 15. 视网膜图像问题
- 16. CSS resize视网膜图像
- 17. 视网膜版本的图像总是用在非视网膜显示
- 18. UIAlertView中的图像:CGRectMake在视网膜和非视网膜中iPhone
- 19. 如何制作UIImageView加载视网膜和非视网膜图像
- 20. iOS应用程序非视网膜和视网膜图像概念
- 21. 将图像用于视网膜和非视网膜屏幕上的文字
- 22. 混合视网膜和非视网膜资产的OpenGL ES
- 23. 视网膜和非视网膜ios应用程序
- 24. 开发视网膜和非视网膜显示器OpenGL ES
- 25. 视网膜模拟器显示非视网膜分辨率
- 26. UIImageView contentMode在视网膜和非视网膜显示不同
- 27. 视网膜和非视网膜兼容UIImage堆叠和定位
- 28. 瓷砖大小,视网膜与非视网膜,iPad vs iPhone
- 29. 更新非视网膜帆布应用视网膜显示
- 30. 微分视网膜和非视网膜显示器的iOS
我从一个叫做“rescale @ 2x”的地方获得了一个小小的Mac工具。它需要您的@ 2x图像并为它们创建“正常”副本,因此您可以同时拥有这两个副本。 –