我问这个问题仅仅是为了获取信息,并在iOS
应用程序(Retina
和non-retina
设备)中清除我对图像的概念。
我目前正在做的是
当我开发一个iPhone
应用程序时,我必须使用UIButton
在Interface builder
上显示一个图像让我说两个图像让我们假设以下尺寸的submit.png按钮图像
在Interface builder
中,我会设置UIButton
100x100像素的大小,它的效果非常好。
问题:
为什么我们不放置单个图像让我们说一下submit.png
并在UIButton
中设置interface builder
尺寸为100x100像素,同时在retina
和non-retina
设备中使用相同的图像。
使用两幅图像而不是一幅视网膜尺寸的实际原因是什么?
另一个类似的问题,
iPhone 5
仅在retina
展示时可用,但我们必须将Default
图片设为Default-568h@2x.png
。为什么在2x?
答案 0 :(得分:9)
在ios图像概念中,如果您阅读此文档Custom Icon and Image Creation Guidelines
,也会清楚例如,如果要创建图像
100 x 100像素所以必须使用 163分辨率ppi submit.png NON-retina device
200 x 200 px 因此必须 326分辨率ppi submit@2x.png Retina device
FOR iPad: -
400 x 300 px 因此必须 264分辨率ppi submit@2x~ipad.png Retina iPad device
200 x 150像素因此必须使用 132分辨率ppi submit~ipad.png Non-retina iPad device
看看这张图片: -
来自This
的图片来源当我们想要为iPad和iPhone指定不同版本的图像时,我们灌输了@ 2x。包含@ 2x修改器用于高分辨率图像是新的,让系统知道图像是标准图像的高分辨率变体。
这是操作系统调整窗口大小以填充iPhone 5显示所需的关键更改。已经对此进行了writeup以及您可能需要进行的其他与大小相关的调整。
希望这是图像分辨率及其大小的有用信息。
答案 1 :(得分:4)
使用非视网膜图像的主要目的是由于所需的缩小操作,旧设备的性能增强和图像质量。
因此,对于较旧的设备性能,您应该使用非视网膜图像。
答案 2 :(得分:1)
为什么我们必须提供2张图片的原因是因为仍有人在运行不支持视网膜显示的早期设备。当人们跑视网膜时,它们缺乏像素量,因此我们提供正常的量。 iphone 5在图像文件中需要@ 2x的是因为@ 2x文件名是处理视网膜显示图像的标准惯例。
这就是为什么当你问为什么我们不把200x200图像放在100x100按钮中时。好吧,如果你正在运行视网膜设备,那个按钮中的图像看起来就像你画的那样;但是,如果你运行像3gs这样没有视网膜的东西,那么那个按钮中的图像很可能会变得非常块状,或者模糊,因为像素与设备的比例不匹配。
希望有助于清除任何事情!
答案 3 :(得分:1)
是的,您只能将视网膜图像用于视网膜和非视网膜设备。如果您在imageviews
,按钮等中使用它们,请将它们scaletofill/aspectfill/aspectfit
或您想要的任何内容。
但问题在于,不必要的较大尺寸的图像将被加载到内存中,并且图像的大小调整也需要一些处理。
使用单独的图像会增加App Bundle的大小,但会降低应用程序在运行时的实际ram使用量。
答案 4 :(得分:-1)
1-如果您想支持视网膜和非视网膜设备的应用,您需要遵循文件名标准。如果您只想支持视网膜设备,则无需添加默认图像(button.png)。如果你想同时支持视网膜和非视网膜设备,需要添加两个图像以及界面构建器,无需添加像@ 2x这样的全名。您只需添加图像的名称。主要基础是两个图像的名称应该相同。
Ex: Non retina-->Button.png
,Retina-->Button@2x.png
,IE-->Button
2 - iPhone5仅具有视网膜显示功能。因此,如果您为iPhone5添加默认图像,它将自动在iPhone5设备中运行。 Apple遵循这些标准。所以我们需要遵循。
注意: Xcode会自动处理所有这些类型的图片。