9

我问这个问题只是为了提供信息并清除我对iOS应用程序(Retinanon-retina设备)中图像的概念。

我目前做的是

当我开发一个iPhone应用程序并且我必须显示一个图像时让我们说UIButton使用Interface builder我拍摄两个图像让我们假设以下尺寸的 submit.png 按钮图像

  1. 100x100 像素 (submit.png)
  2. 200x200 px (submit@2x.png) 用于视网膜显示

Interface builder我将设置为UIButton100x100 像素的大小,它可以完美地工作。

问题:

我们为什么不只放置单个图像让我们说 submit.png

  1. 200x200 像素 (submit.png)

并且设置UIButton大小为 100x100 像素,interface builder并且相同的图像将在两个设备retina中使用。non-retina

使用两张图像而不是一张视网膜大小的图像的实际原因是什么?

另一个类似的问题,

iPhone 5仅在retina显示中可用,但我们必须将其Default图像放置为Default-568h@2x.png. 为什么是 2 倍?

4

5 回答 5

9

如果您阅读此文档自定义图标和图像创建指南,则在 ios 图像概念中也很清楚

例如,如果你想创建图像

100 x 100 px所以它必须具有163 分辨率 ppi submit.png NON-retina device

200 x 200 px所以它必须具有326 分辨率 ppi submit@2x.png Retina device

对于 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

看看这张图片:-

在此处输入图像描述

图片来源来自这个

当我们想为 iPad 和 iPhone 指定不同版本的图像时,我们反复灌输 @2x。为高分辨率图像包含 @2x 修饰符是新的,它让系统知道该图像是标准图像的高分辨率变体。

这是操作系统调整窗口大小以填充 iPhone 5 显示屏所需的关键更改。已发布了有关此调整以及您可能需要进行的其他与大小相关的调整的文章。

希望这是对图像分辨率及其大小有用的信息。

于 2013-07-19T05:01:47.260 回答
4

由于所需的缩减操作,使用非视网膜图像的主要目的是在旧设备上提高性能和图像质量。

因此,对于旧设备的性能,您应该使用非视网膜图像。

于 2013-07-19T04:53:37.950 回答
1

是的,您可以只将视网膜图像用于视网膜和非视网膜设备。如果您在imageviews按钮等中使用它们,请制作它们scaletofill/aspectfill/aspectfit或您想要的任何东西。

但是这样做的问题是不必要的大尺寸图像将被加载到内存中,并且图像的大小调整也需要一些处理。

使用单独的图像确实会增加 App Bundle 的大小,但会减少应用程序在运行时的实际内存使用量。

于 2013-09-05T12:33:43.600 回答
1

我们之所以必须提供 2 张图像,是因为仍然有人在运行不支持视网膜显示的早期设备。由于运行视网膜的人,它们缺乏像素数量,因此我们提供正常数量。iphone 5 要求图像文件中的@2x 是因为@2x 文件名是处理视网膜显示图像的标准约定。

这就是为什么当你问我们为什么不把 200x200 图像放在 100x100 按钮中的原因。好吧,如果你正在运行一个视网膜设备,那个按钮中的图像看起来就像你画的那样;但是,如果您运行的是没有视网膜的 3gs 之类的东西,那么您在该按钮中的图像很可能会变得非常块状或模糊,因为像素与设备的比例不匹配。

希望这有助于清除任何事情!

于 2013-07-19T04:53:06.817 回答
-1

1- 如果您想同时支持您的应用程序 Retina 和非 Retina 设备,您需要遵循文件名标准。如果您只想支持视网膜设备,则无需添加默认图像(button.png)。如果您想同时支持 Retina 和非 Retina 设备,则需要添加两个图像以及在界面生成器中不需要添加像 @2x 这样的全名。您只需添加图像的名称。主要的基础是两个图像的名称应该相同。 Ex: Non retina-->Button.png, Retina-->Button@2x.png,IE-->Button

2 - iPhone5 只有视网膜显示屏。因此,如果您为 iPhone5 添加默认图像,它会自动在 iPhone5 设备中运行。苹果正在遵循这些标准。所以我们需要跟随。

注意: Xcode 会自动处理所有这些类型的图像。

于 2013-07-19T06:17:08.197 回答