2014-09-11 111 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