2010年12月17日金曜日

Android開発における端末別の画面表示対応

androidの開発で苦労するのが端末別の対応です。
現在のアプリの対応端末の基本はXperia、Desire、Galaxyでしょう。
しかし、これにIS03が加わると大変です。

なぜなら、Xperia、Desire、Galaxyの画面SkinはWVGAなのですが、IS03はHVGAなのです。
IS03はHVGAなので、現状の主力端末の表示方法とは相容れない「ガラパゴススマフォ」なのです。

個人アプリならScrollView、RelativerLayout、dpi、spの組み合わせで、画面layoutを無視してなんとでも対応できます。
しかし、仕事となるとスクロールを使えない場合があります。ScrollViewが使えず、画面レイアウトを重視されるともう大変です。個人的にはIS03は無視でいい。と思うのですが、日本の仕事場はそこまで割り切った切捨てができない場合が多いので、にっちもさっちもいかなくなる。そして、一画面にデータを収めるのに四苦八苦しないといけないわけです。

これはandroid端末の最大の欠点です。
将来、androidがiphoneに負けるとしたらこれが理由になるでしょう。
つまり、「バラバラな端末仕様のせいで、良質のアプリが全ての端末に提供できない」ということです。
 海外では切捨てをあまり気にしなさそうなので、androidは間違いなく一番手で普及するでしょうが、日本で切捨ては無理でしょう。
というわけで、とりあえずの私が緊急に行った対応方法をメモに残しときます。

今回のケースはxperiaの解像度に合わせて作成した画面WVGA854(480 x 854)を他の主力端末に合わせるケースです。
WVGA800でも表示は特に問題はなかったのですが、ついでに対応しました。

xperia以外の対応端末は

WVGA800
(480 x 800)の
Desire(HTC)
Galaxy S



HVGAの
(640 x 960)
HVGA
IS03
です。


私の場合、layoutフォルダに画面レイアウトxmlをひとまとめにしていたので、これを分割しました。
resの配下に「layout-854x480「「layout-800x480」フォルダを作成します。

つまりは、
res - layout

から

res - layout-854x480
- layout-800x480
- layout

といったフォルダ構成に変更します。

フォルダ構成変更後、既存のlayoutフォルダの中身を

layout-854x480,layout-800x480
に格納します。

これでxperiaのレイアウトは
layout-854x480フォルダ内のxmlが適用されます。
Desire(HTC)とGalaxy Sのレイアウトは
layout-800x480フォルダ内のxmlが適用されます。

そして、IS03はlayoutフォルダ内のxmlが適用されます。
あとは、それぞれの端末に合わせた調整をすればOKです。


参考
http://developer.android.com/guide/practices/screens_support.html

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...