数多くの候補から自分好みのものを選択できるAndroidデバイス。高度なカスタマイズが可能なことも魅力であり強みです。しかし、その反面、わかりにくさを指摘されることもあります。ここではそんな「Androidのここがわからない」をわかりやすく解説します。今回は、「解像度はバラバラなのに、Androidアプリの画面デザインに統一性があるのはなぜ?」という質問に答えます。

***

ハードウェア仕様をある程度メーカーの裁量で決定できることは、Android端末の特徴であり強みです。表示装置の解像度もそのひとつで、かつては横480x縦800あたりが主流でしたが、横1080x縦1920(Nexus 5)や横1440×縦2560(LG G3)など、端末の高解像度化が急速に進行しています。一方では画素ピッチを狭くして高精細化を図る手法が増えたため、端末が異なると画像の大きさが変わって見えてしまう問題も現れました。

解像度/画素密度を完全にメーカー任せにしてしまうとアプリの画面デザインを統一しにくくなるため、Android OSでは6種類の解像度を定義し、どの画面密度でも同じように表示できるピクセル単位「dp(density-independent pixels)」を用意しています。厳密に同じサイズとはなりませんが、このdpを用いてアプリの画面をデザインすれば、どの端末でもほぼ同じように表示できるのです。

具体例で説明してみましょう。標準の解像度(mdpi)にあわせてデザインしたアイコンが縦横48ピクセルだとすると、hdpi(dp=×1.5)の端末向けには縦横72ピクセル、xhdpi(dp=×2)の端末向けには縦横96ピクセルのアイコンを用意することになります。xxhdpi向けにデザインしたアイコンが縦横48ピクセルだとすると、mdpi端末向けには3分の1の縦横16ピクセル、hdpi端末向けにはその1.5倍の縦横24ピクセルです。

そのようなルールはアプリ開発者が心得ておけばいいことですが、dpに応じて複数の種類の画像を用意しなければならず、それが開発の負担になっていることも事実です。もし自分の端末で表示が崩れるアプリに遭遇した場合は、そっと報告してあげましょう。

■Android端末の解像度

汎用密度 倍率 画面のピクセル数(例)
ldpi(120dpi) x0.75 240×320
mdpi(160dpi) x1 360×640
hdpi(240dpi) x1.5 540×960
xhdpi(320dpi) x2 720×1280
xxhdpi(480dpi) x3 1080×1920
xxxhdpi(640dpi) x4 1440×2560