2013年7月12日金曜日

gravity:layout_weight をプログラム上で設定する

次に、gravity:layout_weight をプログラム上で設定する方法について。

gravity:layout_weight というと、これを設定した View で画面上の空き地を埋めてくれるというもので、ボタンを最下部に配置したい時なんかにも使ったりします。
その場合はボタンに weight を設定するのではなくて、ボタンの上に配置される View に weight を設定します。そうすることで View が画面の空き地を占有して、ボタンが下に追いやられることになります。

ちょっと話がズレましたが、gravity:layout_weight をプログラム上で設定するには次のように書きます。


LinearLayout layout = new LinearLayout(this);
layout.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.WRAP_CONTENT,
                1));

最後の "1" が weight の値です。

中央寄せ

Android アプリの開発に関することを淡々と書いていきます。
いずれは iPhone アプリも...

まずはプログラム上でレイアウトを中央寄せ(センタリング)する方法から。
次のように書きます。

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams. MATCH_PARENT));
// 縦横中央寄せ
layout.setGravity(Gravity.CENTER);

setGravity() で設定します。
こうすると layout の中に配置された View が中央寄せされます。

センタリングにも 3 種類あって、

CENTER_HORIZONTAL:横方向の中央寄せ
CENTER_VERTICAL:縦方向の中央寄せ
CENTER:縦横の中央寄せ

となってます。

XML上で設定する場合は、

android:gravity="center"

こんな感じです。