iOS应用程序非视网膜和视网膜图像的概念
我只是提供这个问题的信息,并清除我的iOS
应用程序中的图像( Retina
和non-retina
设备)的概念。
我现在做的是
当我开发一个iPhone
应用程序,我必须显示一个图像让我们说使用Interface builder
UIButton
我把两个图像,让我们假设submit.pngbutton图像的大小如下
- 100×100 px(submit.png)
- 200×200像素(submit@2x.png)视网膜显示
在Interface builder
我将设置UIButton
100×100像素的大小,并且完美地工作。
题:
为什么我们不能只放置单个图像让我们说submit.png
- 200×200 px(submit.png)
并在interface builder
设置UIButton
尺寸为100×100像素,相同的图像将用于retina
和non-retina
设备。
使用两幅图像的原因是什么,而不是一个单一的视网膜大小的图像?
另一个类似的问题
iPhone 5
只能用于retina
显示,但我们必须将其Default
图像设置为Default-568h@2x.png
。 为什么在2x?
使用非视网膜图像的主要目的是由于所需的缩小尺寸操作而使旧设备的性能增强和图像质量。
所以对于较旧的设备性能,您应该使用非视网膜图像。
在ios图像的概念也清楚,如果你阅读本文档自定义图标和图像创build指南
例如,如果你想创build图像
100 x 100像素,所以它必须与163决议ppi submit.png NON-retina device
200 x 200像素,所以它必须与326解决schemeppi submit@2x.png Retina device
对于iPad: –
400×300像素,所以它必须与264解决schemeppi submit@2x~ipad.png Retina iPad device
200 x 150像素,所以它必须与132决议ppi submit~ipad.png Non-retina iPad device
看看这个图像: –
图片来自This
当我们想要为iPad和iPhone指定不同版本的图像时,我们教导@ 2x。 包含用于高分辨率图像的@ 2x修改器是新增function,可让系统知道图像是标准图像的高分辨率变体。
这是操作系统调整窗口大小以填充iPhone 5显示屏所需的关键变化。已经发布了关于这个和其他与尺寸相关的调整的文章,你可能需要做的。
希望这是图像分辨率和它的大小有用的信息。
为什么我们要提供2张图片的原因是因为仍然有人在运行早期的设备,不支持视网膜显示。 他们像运行视网膜的人像素数量不足,所以我们提供正常的数量。 在图像文件中需要@ 2x的iphone 5的东西是因为@ 2x文件名是处理视网膜显示图像的标准惯例。
这就是为什么当你问为什么我们不把200×200图像放在100×100的button中。 那么,如果你正在运行一个视网膜设备,该button中的图像将看起来像你所绘制的; 然而,如果你正在运行一个像3g那样的没有视网膜的东西,那么你那个button中的图像很可能会变得很块,或者像素不符合设备的比例。
希望帮助清除任何东西!
是的,您可以只使用视网膜图像的视网膜和非视网膜设备。 如果你在imageviews
,button等使用它们,使他们scaletofill/aspectfill/aspectfit
或任何你想要的。
但问题在于不必要的较大尺寸的图像将被加载到内存中,并且图像的大小调整也将需要一些处理。
使用单独的映像不会增加应用程序包的大小,但会降低应用程序在运行时的实际内存使用率。
1-如果你想支持你的应用程序,视网膜和非视网膜设备,你需要遵循文件名的标准。 如果您只想支持视网膜设备,则不需要添加默认图像(button.png)。 如果你想支持视网膜和非视网膜设备,需要添加图像以及在界面生成器中,无需像@ 2x一样添加全名。 您只需添加图像的名称。主要基础是两个图像的名称应该是相同的。 Ex: Non retina-->Button.png
, Retina-->Button@2x.png
IE-->Button
Retina-->Button@2x.png
, IE-->Button
2 – iPhone5只有视网膜显示。 所以如果你为iPhone5添加默认图像,它会自动运行在iPhone5设备上。 苹果正在遵循这个标准。 所以我们需要遵循。
注意: Xcode会自动关心所有这些图像。