5

ユニバーサルアプリを作成しています。1 つの画面に対して、このコントロールを使用して 6 つの画像 (png 形式) をグリッドに表示しています。また、この画面は縦向きと横向きの両方をサポートしています。

すべての iDevice 用にさまざまな解像度で一連の画像を作成し、次のように正しい命名規則を使用して名前を付けました。

  • 名前~iphone.png
  • name@2x~iphone.png
  • 名前~ipad.png
  • 名前@2x~ipad.png
  • name-568h@2x~iphone.png (iPhone 5)

また、両方の向きをサポートしているため、これらの画像の別のセットを作成する必要があり、横向きでは伸びるため、上記と同じ画像を使用できません。

現在、1 つの画面だけで 60 枚近くの画像があり、アプリの重さはすでに ~40MB です! これが受け入れられないことは言うまでもありません。

私の質問は、これらすべてのサイズ/デバイスと方向に対して個別のイメージを作成する必要があるかどうかです。Retina ディスプレイ用のセットを作成することはできませんか? 通常のディスプレイ用に縮小されますか? それが不可能な場合、画像のサイズを縮小する方法はありますか?

ありがとうございました。

4

2 に答える 2

2

必須ではありませんが、実行するか、少なくとも他の要素とバランスを取る必要があります。そうでない場合の主な問題は、メモリ (RAM) の問題に関連しています。大きな画像はメモリ内で多くのスペースを占有し、解像度の低いデバイスは Retina のものよりもメモリが少なくなります。したがって、縮小は最良の選択肢ではありません。
考えられる解決策は、他のサイズでもサイズ変更できる「大きな」画像を1つ取得することです。そのためには、Core Graphics または ImageIO を使用して画像を再描画する必要があります。このライブラリはNYXImagesKitに役立ちます。もちろん、支払うべき代償があります:

  1. 計算時間が必要です
  2. 計算を行うには、ソースの「大きな画像」を少なくとも 1 回開いておく必要があります。すでにメモリが不足している場合は、問題になる可能性があります。

GUI (だけでなく) 要素用の別のソリューションがあり、PDF vect イメージを使用します。ここで Matt Gemmel による 興味深い記事を見つけることができ
ます。画像がアルファ チャネルを使用していない場合は、jpg を使用してください!!!!

于 2013-07-15T05:51:59.280 に答える