Androidは画面サイズ、解像度、縦横比がばらばらでめんどくさいですね。
めんどくさいですよね
画面サイズ、解像度に関する情報はAndroid Developers Supporting Multiple Screensにまとまっていますが、大事なのは実際の端末でずれないことです。
Screen Sizes and Densitiesに、どんな解像度の端末が普及しているか書いてありますね。
そしてこれを、日本で発売、または輸入品が転がっている端末に当てはめてみると・・・
ldpi | mdpi | hdpi | xhdpi | |
---|---|---|---|---|
small | ||||
normal | 320x480 HT-03A, Optimus Chat |
480x800 Nexus One, Nexus S, Desire, Desire HD, Evo 4G, Galaxy S, Galaxy S2, Optimus Bright, F-12C, SH-03C, 003Z, 003SH, 005SH, IS05, IS06, IS11CA 480*854 Xperia, Xperia arc, Xperia acro, IS11T, T-01C, IS04, P-07C, MEDIAS, MEDIAS WP 540*960 SH-12C, SH-13C, 006SH, 007SH, IS12H, Evo 3D, INFOBAR A01, IS11SH 480*960 IS01(アプリからは480*854) |
640*960 IS03 |
|
large | 480*800 DELL Streak |
600*1024 Galaxy Tab 7 |
||
xlarge | 1280x768 Optimus Pad 1280*800 XOOM |
こんな感じです。
そして主に日本では、480x854がやたらと幅をきかせていて、540x960も無視できなくなってきました。
縦横比が違う上に、横をdensityで割っても320にならない(qHD)ので、十分注意してください。
これを見て、検証に必要な端末がリストアップできますね。
さらにAndroidのバージョンと入っているフォントでも崩れるので、結局全部確かめないといけないんですけどね。
そんなわけで、崩れないようにするには、
- px指定しない
- 割合で広がるもの(50%など)はpxやdpiではなくlayout_weightで比率指定する
- たくさんの端末で確かめる
といった努力が必要です。
つまり、どんどん端末を買いましょう。