2014-09-11 113 views
137

我看过几篇关于图像分辨率的文章和讨论,如one hereHere,这些新图像将使用@ 3x图像进行显示。这是真的吗?我们将不得不保留三张图片?举例来说,我有一个50 X 50的图像,我将不得不保留3个图像来优化新iPhone的外观?新iPhone 6和6+的图像分辨率,增加了3倍支持?

  • 正常(50×50)
  • @ 2x - 时视网膜(100×100)
  • @ 3倍 - 视网膜HD(150×150)

或将新的手机使用@只有2张图片,并没有像@ 3x?

我已经通过制作示例项目进行了测试,所有模拟器似乎都使用@ 3x图像,这很让人困惑。

编辑

下面是一些更多的信息

  • 3GS(163 ppi的这么正常使用)
  • 4,4S,5和5S(326 ppi的,所以我们使用@ 2X)
  • 6(326 ppi所以它好像会使用@ 2x)
  • 6加(401 ppi在这里是混淆)

编辑基于由Tsob和尼廷给出答案

,我加了3倍@映像我的项目。

信息化编辑

我看到一些用户感到困惑,为什么iPhone 6使用@即使它有更高分辨率的2倍的图像,其原因是

iPhone 6可能有不同的分辨率,但具有相同的密度每像素英寸(PPI)

  • 分辨率涉及绝对数量的像素。
  • 密度(又名像素每英寸-PPI)涉及每英寸像素的相对数量,这与iPhone 6和以前的iPhone相同,但iPhone 6 plus不同。

检查详细了解此here in this thread

因此iPhone 6使用@ 2倍的图像相同的iPhone 4,5和5S,因为它具有相同的PPI和iPhone 6 Plus使用@ 3倍。

+0

那么Retina 4 2x的用途是什么,如果没有使用它的设备? – Mrunal 2014-12-20 07:56:25

+1

我同意4,5和6 iPhone的密度相同,但是如何解决不同的分辨率问题?所以这是640x960和750×1334像素的巨大差异。如果我需要使用覆盖整个屏幕的背景图像。在这种情况下如何设置图像xcassets? – 2015-02-03 14:04:33

+0

@MatrosovAlexander你是如何解决这个问题的? – 2015-02-18 17:14:32

回答

53

我试过在示例项目中使用标准,@ 2x和@ 3x图像,并且iPhone 6+模拟器使用@ 3x图像。所以它似乎有@ 3x图像要完成(如果模拟器实际上复制设备的行为)。 但奇怪的是,所有设备(模拟器)在项目结构iPhone 4S/iPhone 5上似乎都使用这个@ 3x图像。
苹果公司在潜在的@ 3x结构上缺乏沟通,而他们要求开发者发布他们的iOS8应用程序相当混乱,特别是在模拟器上看到这些结果时。

**从苹果公司的网站**编辑:也发现了这个关于“什么是iOS上的8个新的”苹果的开发者空间部分:

支持新的屏幕比例 的iPhone 6加使用屏幕比例为3.0的新Retina HD显示器。为了在这些设备上提供尽可能好的体验,请包含为此屏幕比例设计的新图稿。在Xcode 6中,资产目录可以包含1x,2x和3x大小的图像;只需添加新的图像资源,iOS将在iPhone 6 Plus上运行时选择正确的资产。 iOS中的图片加载行为也可以识别@ 3x后缀。

仍不理解为什么所有设备似乎都加载@ 3x。也许这是因为我使用的是常规文件而不是xcassets?将很快尝试。

进一步测试后编辑:好吧,似乎iOS8在这方面有一个谈话。在iOS 7.1 iPhone 5模拟器上测试时,它会正确使用@ 2x图像。但是,在iOS 8上启动它时,它会在iPhone 5上使用@ 3x。 不知道这是iOS8 GM或Xcode 6中的模拟器中的想要的行为或错误/错误。

+2

是的我用模拟器测试,所有设备采取@ 3x图像,确实令人困惑 – 2014-09-11 07:36:06

+0

因此,总之,*作为今天*最佳路径将在图像名称中使用“@ 2x”,但不知怎的,设备检查6 Plus并使用3x图像而不是“@ 3x”,以免毒化2个设备? – darkheartfelt 2014-10-17 21:59:29

+0

似乎iPhone 6上的3x选项只有在问题资产是JPG而不是PNG的情况下才会发生。 – emreberge 2015-04-07 13:09:42

2

ios将始终尝试采取最佳图像,但会回落到其他选项..所以如果你只有在应用程序中的正常图像,它需要@ 2x图像它将使用正常的图像。

如果您只在项目中放置@ 2x,并且您在普通设备上打开应用程序,则会缩放图像以显示。

如果你的目标是ios7和ios8设备,并且想要最好的质量,你需要@ 2x和@ 3x用于手机,普通和@ 2x用于ipad资产,因为没有非视网膜电话而没有@ 3x ipad。

也许最好是在从矢量图形应用程序创建的资产...检查http://mattgemmell.com/using-pdf-images-in-ios-apps/

+0

只需在应用程序中使用令人惊叹的PaintCode向量 – Fattie 2014-10-01 11:28:35

102

UPDATE:

新链接,通过苹果的图标图像大小。

https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/

enter image description here


是的,它是在这里真正是苹果提供关于icon's or image size

enter image description here

你必须设置images for iPhone6 and iPhone6+

正式文件

对于iPhone 6:

750 x 1334 (@2x) for portrait 

1334 x 750 (@2x) for landscape 

对于iPhone 6加:

1242 x 2208 (@3x) for portrait 

2208 x 1242 (@3x) for landscape 

For more info regarding Images and it's resolution this is best ever helpful post

用于设置图像大小可以设置1倍@ 2x和@ 3X像控制以下:

enter image description here

+8

如果所有设备都是视网膜2x或3x为什么资产目录要求在iOS 7/8上只针对iPhone定位项目上的1x图像?没有意义。 – SpaceDog 2014-09-11 10:25:14

+1

可能是iphone4 @RubberDuck :)看到那个iPad 2和iPad Mini需要1x – 2014-09-11 11:50:09

+0

对不起,但你没看过我写的东西。我正在讨论iOS 7的iPhone专用项目。没有可以运行iOS 7的1x的iPhone,但资产目录仍然要求它。 – SpaceDog 2014-09-11 11:53:14

10

我已经通过制作一个示例项目进行了测试,所有模拟器似乎都使用@ 3x图像,这很让人困惑。

在你的资产目录创建不同版本的图像,使得图像本身会告诉你这是什么版本:

enter image description here

现在运行于依次对每个模拟器的应用程序。您将看到3x图像仅用于iPhone 6 Plus。如果图像是从应用程序包使用他们的名字(如one.png[email protected][email protected])绘制

同样的事情是真实的,通过调用imageNamed:和分配到图像视图。

(不过,如果你的图像分配给在Interface Builder中的形象图的一个区别 - 。2倍的版本是在双分辨率的设备忽略这可能是一个错误,显然是在pathForResource:ofType:的错误。)

+1

您已将资产标记为“普遍”,因此您会看到一致的行为。请尝试在下拉菜单中选择“特定设备”! – 2014-09-29 15:32:41

+0

@matt,谢谢你的回答。已经差不多一个月了,我不知道这个问题是否已经解决,因为我仍然使用Xcode 6.0.1,并且无法在google上找到答案。 – inexcii 2014-10-08 02:49:08

+0

@RalphZhouYuan什么是“这个问题”? – matt 2014-10-08 02:58:32