いつクリはてブロ

いつになったらクリエイティブするの?

AndroidのレイアウトをXMLで記述する際の覚え書きあれこれ

Androidアプリを作るとき、中身はとりあえず置いておくとして、レイアウトだけサクッと決めて実機で動かすとテンションが上がる。
実機デバッグモード素晴らしい。

レイアウトの形式

以下の4つがよく使われるらしい

  • LinearLayout 直線的に並べる
  • TableLayout 表形式で表示
  • AbsoluteLayout 座標を直接指定
  • RelativeLayout 要素同士の位置関係を指定してレイアウトを構築

※今回はLinearLayoutを主に利用しているので、以下に詳細を記す。

記述例:
<LinearLayout 
     android:orientation="horizontal"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content">
※ここに要素を記述
</LinearLayout>
  • orientation 要素の並べ方を指定する
    • vertical 縦方向
    • horizontal 横方向
  • layout_width 縦、横方向の要素のサイズを指定する
  • layout_height
    • wrap_content 最小限の大きさで表示
    • fill_parent 最大限の大きさで表示
    • Xdip 数値で大きさを指定
  • layout_weight レイアウトの優先度を指定する(余白指定のときに用いる)

layout_widthとlayout_heightは必ず記述する必要がある?(未確認)
LinearLayoutは入れ子構造にすることで縦方向と横方向の入り交じったレイアウトを構築できる。

参考URL
http://www.trusted-design.net/layoutEdit.html
http://itpro.nikkeibp.co.jp/article/MAG/20090818/335668/?ST=nsw&P=1

画面の向きによってレイアウトを変更する

重力センサにより縦向き画面と横向き画面で表示され得るので、それぞれ別のXMLファイルでレイアウトを定義する。

  • /workspace/プロジェクト名/res/layout/main.xml

縦向き時のレイアウト。プロジェクト作成時に自動で作成される

  • /workspace/プロジェクト名/res/layout-land/main.xml

横向き時のレイアウト。eclipseから自分で追加する

参考URL
http://techbooster.jpn.org/andriod/ui/721/

要素を重ねる

RelativeLayoutを利用すると要素を重ねられる。

参考URL
http://boco.hp3200.com/primer/hello02-2.html

余白の使い方

LinearLayoutでlayout_width="fill_parent"などと指定した場合、余白は自動で配分される。
このとき、android:layout_weightにより、余白配分の優先順位を指定できる。

参考URL
http://www.android-navi.com/archives/android_1/checkbox/

レイアウトや文字の中央配置、右寄せなど

  • android:gravity これを記述したビューの中身(子)に対して位置を指定する。
  • android:layout_gravity これを記述したビューが、親要素に対して自分の位置を教える。

参考URL
http://magpad.jugem.jp/?eid=153
(具体例が画像とともに載っていて大変分かりやすい)