画面サイズ、画面密度、または画面の高さと幅の比率に関係なく、どの Android デバイスでもアプリを正しく表示したいと考えています。API 8 までの古い Android デバイスをサポートしたいと考えています。ポートレート、ランドスケープ、およびおそらく超大画面用に個別のレイアウトを作成できますが、それ以上は、密度や画面サイズごとに異なるレイアウトを作成したくありません。
複数の画面のサポートに関する Android ガイドを読みました。私はこれらのガイドラインに従うようにしています。たとえば、ウィジェットの高さと幅を wrap_content または fill_parent に設定し、特定のピクセル測定値を使用しないようにしています。画像の場合、さまざまな密度の代替ビットマップ リソースを提供するか、密度に依存しないピクセル (ディップ) で特定のサイズを使用することがあります。
過去 2 年間、私はおそらくそのガイドを何十回も読んできました。
特定の画面サイズと密度に対して特定のリソース (レイアウトなど) を定義できることは理解していますが、サポートしたい電話が数十または数百あるので、それは無駄に思えます。そのガイドの表 3 には、画面の一般的な寸法が示されていますが、ほぼすべての電話でアプリが実行されるようにしたいと考えています。
私が知る必要があるのは、最も狭い画面 (ディップ) と最も短い画面であるように思えます。つまり、高さと幅の比率を知りたいのです。
たとえば、縦向きの場合、おそらくボタンやその他のウィジェットのリストがあります。幅と高さの比率が最大の携帯電話が最も短いかどうかを知りたいので、レイアウトが下部で切り取られているかどうかを確認できます。おそらく私も 3 つのタブを持っています。タブが右側で切れていないことを確認できるように、最も狭い画面を知りたいです。
現在のすべての Android フォンの h/w 比の最小値と最大値がわかっていれば、ポートレートの場合、2 つの Android 仮想デバイス (または Eclipse のカスタム画面だけ) でテストできます。
私はウィキペディアの Android デバイスのリストを調べることにしましたが、誰かがもっと良い方法を持っているに違いありません。