web-dev-qa-db-ja.com

ユニバーサルアプリでiPadとiPhoneの両方のRetinaグラフィックをサポートする方法

Appleは、網膜グラフィックスをサポートする新しいiPadを発表しました。

このリンクの網膜グラフィックはAppleアプリ にあります。ご覧のとおりApple Retina iPadにはサフィックス「@ 2x」を使用してください表示。

私は普遍的なアプリを持っています。では、新しいiPadandiPhoneで網膜をサポートする方法は? iPad RetinaはiPadに似た接尾辞「@ 2x」を使用しますか?

71
rowwingman

テストアプリを作成してテストしました。

つまり、網膜のないデバイスの場合:
ImageName.png-iPhone/iPodの場合
ImageName~ipad.png-iPadの場合

網膜ディスプレイを備えたデバイスの場合:
[email protected]-iPhone/iPodの場合
ImageName@2x~ipad.png-iPadの場合

IPhoneの高解像度画像とiPadの高解像度画像のサイズが同じ場合でも、@ 2xを使用できます。
画像を読み込むには、[UIImage imageNamed:@"ImageName.png"];
iOS 5.1、5.0、4.3のiOSシミュレーターでテストしました。
ちなみに、@ 2xを使用する理由は何でもありません。

IPhoneとiPadのサイズが異なるため、iPhoneとiPadで同じグラフィックを使用しないでください。また、同じサイズを使用する場合は、iPad Retinaディスプレイ用にグラフィックスが既に作成されています(以前にiPhone Retinaディスプレイを使用している場合)。画像のサイズが異なる場合は、iPhoneとiPadで異なる画像名を使用します。したがって、この側では、@ 2xサフィックスを追加するだけです。だからこそ、@ 2xの接尾辞だけを使用すべきです。 -これらは私の考えです。

138
rowwingman

IPad mini/non Retina iPadハードウェアnot simulatorは、rowwingmanの答えから予想されるImageName〜ipad.pngではなくImageName.pngにフォールバックすることがわかりました。

docs を見ると、別の StackOverflowの質問Nate で参照されているように、デバイスをiphoneに追加しているように見えます画像はそれを行う正しい方法です。

MyImage.png-画像リソースのデフォルトバージョン。

[email protected]-Retinaディスプレイを搭載したデバイス用の画像リソースの高解像度バージョン。

MyImage〜iphone.png-iPhoneおよびiPod touch用の画像のバージョン。

MyImage@2x~iphone.png-Retinaディスプレイを搭載したiPhoneおよびiPod touchデバイス用の画像の高解像度バージョン。

画像、音声、およびビデオのリソース

7
bdalziel