web-dev-qa-db-ja.com

iPhone 4の画面解像度に対応するにはどうすればよいですか?

Apple によると、iPhone4の画面解像度は新しく改善されています。

3.5インチ(対角)ワイドスクリーンマルチタッチディスプレイ
326ppiで960x640ピクセルの解像度

この小さな詳細は、アプリに大きな影響を与えます。ネット上のほとんどのデモアプリには、共通点が1つあります。それは、画面のサイズが320 x480ピクセルに固定されていると信じてビューを配置することです。したがって、ほとんどの(すべてではないにしても)開発者が行うことは、タッチ可能な領域が(たとえば)50 x50ピクセルの大きさになるようにすべてを設計したことです。それをタップするのにちょうど十分です。画面上の特定の位置に到達するために、物事は左上を基準にして配置されています。たとえば、中央、または下部のどこかにあります。

高解像度のアプリを開発する場合、古いデバイスではおそらく機能しません。その場合、画像の4倍のサイズになり、メモリ内で縮小する必要があります。

27

ビューでの高解像度画面のサポート によると、Apple docs:

高解像度の画面を備えたデバイスでは、imageNamed:imageWithContentsOfFile:、およびinitWithContentsOfFile:メソッドは、名前に@2x修飾子が含まれる要求された画像のバージョンを自動的に検索します。見つかった場合は、代わりにその画像を読み込みます。特定の画像の高解像度バージョンを提供しない場合でも、画像オブジェクトは標準解像度の画像(存在する場合)をロードし、描画中に拡大縮小します。

UIImageオブジェクトは、画像を読み込むときに、画像ファイルのサフィックスに基づいて、サイズとスケールのプロパティを適切な値に自動的に設定します。標準解像度の画像の場合、scaleプロパティを1.0に設定し、画像のサイズを画像のピクセルサイズに設定します。ファイル名に@ 2xサフィックスが付いている画像の場合、scaleプロパティを2.0に設定し、幅と高さの値を半分にして、倍率を補正します。これらの半分の値は、画像をレンダリングするために論理座標空間で使用する必要のあるポイントベースの寸法と正しく相関しています。

15
ohho

これは純粋に推測ですが、解像度が実際に960 x 640の場合、現在のバージョンのちょうど2倍の解像度になります。 iPhoneがアプリのビルドターゲットをチェックし、アプリのレガシーバージョンを検出して、単純に2でスケーリングするのは、簡単なことです。違いに気付くことはありません。

6
Paul Alexander

Engadgetによる基調講演の報告 SteveJobsからの次のトランスクリプトが含まれていました

...これでアプリが自動的に実行されるようになりますが、テキストとコントロールはより高い解像度でレンダリングされます。アプリの見た目はさらに良くなりますが、少し作業を行うと、見事に見えます。だから私たちはあなたがそれをすることをお勧めします

したがって、既存のAPIを使用すると、アプリがスケールアップされると推測されます。新しいiOS4APIを利用すると、新しいピクセルですべてのGroovyを取得できます。

5
Paul Dixon

表示は問題ないようですが、ゲームのロジックが気になります。 touchesBeganは、新しい解像度でポイントを返しますか?画面の境界は異なります。これらのタイプのものは、私にとって潜在的に問題になる可能性があります。

4
sm2

モバイルWebインターフェースの解決策を探しているこのスレッドに来ている人は、Webkitブログのこの投稿をチェックしてください: http://webkit.org/blog/55/high-dpi-web-sites /

Webkitは4年前にこの問題を解決したようです。

3
user171555

表示目的で2倍の解像度にスケーリングするのは簡単ですが、このスケーリングは、画面座標を入力/出力するすべてのAPIに適用されますか?そうでなければ、物事は壊れそうではありませんか?

フレームワーク全体で広範囲に処理されていれば十分に公平です。この効果の潜在的なAPIはたくさんあると思います。

3
Mick N

はい、そうです。

WWDCによると、Appleは、アプリケーションの解像度が完全にオフにならないように、何らかの形の自動変換を構築しているようです。DVDをHDTVに変換することを考えてください。

私の推測では、Appleは、開発者が使用している標準のほとんどを知っており、すぐに変換するためにすでにこれらを使用しています。もちろん、新しいを利用するようにアプリケーションをプログラミングしている場合解像度は、リンゴの自動変換の結果が何であれ、はるかに見栄えがします。

2
Kavet Kerek

すべてのラベルとシステムボタンは326dpiになりますが、高解像度のリソースを追加するまで、画像はピクセル2倍になります。現在、アプリを更新しています。 iPhone 4 simでビルドして実行すると、50%で表示されます。実際の違いを確認するには、[ウィンドウ]> [スケール]> [100%]に移動してください。ラベルは滑らかで、私の画像は衝撃的です!

2
Picoman Games