サイズの補正について


端末の種類によって解像度と画素数が異なるAndroid端末では、サイズの補正を十分考慮した上でアプリ作成をする必要があります。

そこで、今回はサイズの補正についてまとめてみました。

1.解像度(dpi)と単位
解像度が「160dpi」の端末を、「Density=1.0」の基準端末とします。

[例]
160dpi(Density=1.0)---「HT-03a」
240dpi(Density=1.5)---「Xperia SO-01B」
320dpi(Density=2.0)---「Xperia acro HD」「IS03」

レイアウトする際は、解像度の違いを吸収させるために以下の単位を使用します。

・dp
160dpiの画面に於いて、1dp=1pxとなる単位。
この単位によって構成したレイアウトは、解像度が異なる画面でも同じ大きさに見えます。

240dpi---1pd=1.5px
329dpi---1pd=2.0px

・sp
160dpiの画面を基準にして、フォントサイズを解像度によって自動スケールされます。
フォントサイズを指定する際に使用する単位。

2.サイズの補正
dpやspを使用して解像度の違いは吸収できても、解像度(dpi)と画素数(px)の比率の違いは吸収できません。
解像度(dpi)と画素数(px)の比率が異なる場合は、別途計算して補正する必要があります。
例えば、文字列「abc」を32spサイズで表示したときの画面構成です。

(a)「160dpi」「320×480」
+++++++
+    +
+  abc  +
+         +
+    +
+++++++

(b)「320dpi」「640×960」

+++++++
+    +
+  abc  +
+         +
+    +
+++++++


(c)「320dpi」「720×1280」

++++++++
+       +
+  abc     +
+            +
+       +
+       +
+       +
++++++++


解像度が「160dpi」の基準端末の画素数(px)は、320×480です。
従って、「240dpi」「320dpi」の端末の画素数(px)が、それぞれ「480×720」「640×960」であれば補正の必要はありません。
しかし、各端末は、同じ解像度(dip)でも、画素数(px)はまちまちなものです。

[例]240dpi(Density=1.5)の端末
480×854 「Xperia SO-01B」
540×960 「SH-12C」
480×800 「Nexus S」

よって、どの環境であっても同様のレイアウトを実現するには、サイズ補正の処理を組み込む必要があります。

コメント

このブログの人気の投稿

Android SDK アップデート後のエラー対応

プロキシ設定 Android Studio

Avoid object allocations during draw/layout operations (preallocate and reuse instead)