2010年12月23日木曜日

代替リソースとTableLayout

このエントリーをはてなブックマークに追加
android携帯を縦長モードから横長モードにしたときのレイアウト調整方法に代替リソースを利用する方法があります.ここでは,それを利用して,横長モードにしたときにレイアウトをTableLayoutに設定することを行いました.


代替リソースの設定
LinearLayoutで4つのボタンを表示するの続きです.

エミュレータを起動した状態でCtrl+F11キーを押すと,縦長モードと横長モードが切り替えられます.縦長モードを横長モードにしたら次のような画面となりました.

横長モードのデザインは代替リソースを利用して設定できるらしいです.具体的には,res/layout-land/main.xmlを作成して設定を書きこむことで実現できます.レイアウトをセットするディレクトリ名「layout」の末尾にハイフン付け,その後に水平を意味する「land」を付けると,携帯が水平になったときにそのフォルダの設定を自動で読み込んでくれるらしいです.

横長モード時はTableLayoutとなるように,main.xmlを次のように書きました.

/LayoutTest/res/layout-land/main.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="*"
    android:gravity="center">
    <TableRow>
        <Button
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="@string/alfa" />
        <Button
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="@string/beta" />
    </TableRow>
    <TableRow>
        <Button
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="@string/gamma" />
        <Button
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="@string/delta" />
    </TableRow>
</TableLayout>

android:stretchColumns
列の横幅を拡張可能にします.1を指定すると1列目が,*を指定するとすべて列の拡張可能となり,カラム幅を広げることができます.

android:gravity
配置方法を指定します.left,center,right,top,bottomの指定ができます.


実行結果


いやー,面白いっすね.

0 件のコメント:

コメントを投稿