2013年1月6日日曜日

Androidのlayoutについて

Androidの開発において、端末の大きさごとに調整するのは大変で、経験がないとハードルが非常に高い。

その経験をこの記事で共有したい。


まず、基本から。
Androidの初期においてもその端末やその他環境に応じた表示は可能で、概ねこのような設定が可能である。

http://www.atmarkit.co.jp/fsmart/articles/android08/android08_1.html

レイアウトのファイルを置くフォルダ名は「res/layout」(以下、resは省略)が基本で、例えば横向きの時に表示したいレイアウトがあれば「layout-land」というフォルダに置く。

当初は画面サイズにおいては「layout-480x320」のように指定可能で、いつの間にか「layout-small」や「layout-large」といったざっくりとした指定も可能になっていた。

これは以下のリンクの「Table 1」の表を参考にして欲しい。

http://developer.android.com/intl/ja/guide/practices/screens_support.html


Android3.2(SDK11)以降ではさらに考え方が変わっており上記のリンクの「Table 2」を参考にして欲しい。

以下のリンクなどは情報がまとまっている。

http://d.hatena.ne.jp/kaw0909/20120212/1329054891


以上が、基本仕様のおさらい。
結局のところどうしたらいいのよ?って方は自分がやってみた設定を参考に。

はじめに

やりたかったこと
480x320

854x480
800x480
1280x720
1280x768

これらの画面サイズに対応。

対応内容

layout
layout-normal-480x320

layout-sw320dp
layout-sw360dp
layout-sw380dp
layout-sw600dp-port
これらのlayoutフォルダを作成し、「layout」フォルダにはすべてのレイアウトを置き、個別に調整する必要があるものだけを他のフォルダに置いた。

なお、480x320は最近の端末では少ないため古いバージョンのみ対応するような記述にしている。

参考までにそれぞれがどんな端末に対応するかも書いておく。


layout-sw320dp
Android3.2以降の主に800x480をターゲットにしている。2011年くらいではスタンダードなサイズ。


layout-sw360dp
Android3.2以降の主に800x480よりちょっと大きめをターゲットにしている。2012年くらいではスタンダードなサイズ。
Galaxy~などが対象。


layout-sw380dp
Android3.2以降の主に1280x720をターゲットにしている。2013年以降おそらくスタンダードなサイズになってくる。


layout-sw600dp-port
Nexus 7などの7インチのタブレットを縦で利用した場合を想定。

以上、参考になれば幸いです。









0 件のコメント:

コメントを投稿