Androidアプリケーションで、画面の解像度に応じてオブジェクト(ウィジェット)を均等に並べるにはレイアウトファイル(*.xml)の各オブジェクト設定に"android:layout_weight="1""と"android:layout_height="fill_parent""を指定することで可能です。

この設定をプログラムから行う方法を以下にメモします。

LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layout = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
layout.weight = 1;
linearLayout.addView(ボタンとかTextViewとか..., layout);
...

LinearLayout.LayoutParams+weightで"android:layout_weight"と同じ設定を行うことができます。

また、LinearLayout+setOrientationで並べる方向を指定することができます。この場合"VERTICAL"を指定しているので縦方向にオブジェクトを並べるようになっています。

あとは普通にオブジェクトを追加していくことで、均等に配置されるようになります。

関連性がある記事

Disqusでコメント