もしデザイン上、高さと幅を定義しなくてはならない場合は、前述の通り、単位として「dip」を使用し、値にはmdpiのカンプからとったものを使用すること。これを正しく行っていれば、指定したレイアウトは画面サイズが違う場合でも正しい大きさに表示され、mdpiとhdpiで別々にxmlファイルを定義する必要はない。
レイアウトのウェイト
LinearLayoutは、Androidのlayout_weightと呼ばれる機能をサポートしている。レイアウトのウェイトとは、要するにUI要素に対して残った空間に占める重要性を指定しておき、それに従って各要素が使用されていない空間を占める割合を決定するというものだ。この手法は、画面を様々なレイアウト要素間で特定の比率に分割しようとするときに便利だ。
カスタムフォント
Androidでは、フォントの種類についてあまり選択肢がないため、いろいろと調べてみるまでは、カスタムフォントを使うには画像リソースを使用する必要があると考えていた。しかし実は、フォントファイルをAndroidプロジェクトのアセットフォルダに置いておけば、そのフォントをTextViewに指定できることがわかった。ただし、これにはプログラム的な対応が必要となる。以下に、これを実現する方法の例を示す。
Typeface font = Typeface.createFromAsset(getAssets(), "league_gothic.otf"); ((TextView)findViewById(R.layout.MyTextView)).setTypeface(font);
結論
Androidアプリを1度だけデザインしスタイルを設定すれば、それをすべての(あるいはほとんどの)デバイスに利用できるようにするために、多くの時間と手間が費やされる。縦表示およ横表示の両方をデザインすることの複雑さは(この概要的な記事では触れなかったが)、この作業をより難しいものにしている。
ここで挙げたヒントが、Androidでの開発作業を少しは簡単にし、読者が他の分野を改善するテクニックを学ぶことに注力できるようになることを祈りたい。Androidアプリをデザインする際に読者が使っているお気に入りのヒントや小技があれば、コメントで教えて欲しい。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。