gravityとlayout_gravity
javaコードによる属性変更はsetGravityを使用します
これでjavaコードでの変更や動的に変更などが可能です
実行結果を前回と同様になるように設定しました
package blog.test; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; public class TestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //親LinearLayoutを作成 LinearLayout layout0 = new LinearLayout(this); layout0.setOrientation(LinearLayout.VERTICAL); LayoutParams p0 = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); //子LinearLayout1/2/3を作成 LinearLayout layout1 = new LinearLayout(this); LinearLayout layout2 = new LinearLayout(this); LinearLayout layout3 = new LinearLayout(this); layout1.setOrientation(LinearLayout.VERTICAL); LayoutParams p1 = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); layout0.addView(layout1,p1); layout0.addView(layout2,p1); layout0.addView(layout3,p1); setContentView(layout0, p0); //ボタンを追加 Button button1 = new Button(this); button1.setHeight(0); button1.setText("left-top"); LayoutParams lp1=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); button1.setGravity(Gravity.TOP); layout1.setGravity(Gravity.LEFT); layout1.addView(button1,lp1); Button button2 = new Button(this); button2.setHeight(0); button2.setText("center-center"); LayoutParams lp2=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); button2.setGravity(Gravity.CENTER); layout2.setGravity(Gravity.CENTER); layout2.addView(button2,lp2); Button button3 = new Button(this); button3.setText("right-bottom"); LayoutParams lp3=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); button3.setGravity(Gravity.BOTTOM); layout3.setGravity(Gravity.RIGHT); layout3.addView(button3,lp3); } }まず画面全体をカバーする親LinearLayoutを作成します
次にその中に子LinearLayout1/2/3を作成します
子LinearLayoutのGravityをそれぞれLEFT/CENTER/RIGHTとします
layout1.setGravity(Gravity.LEFT);の部分
これは子LinearLayoutの中に入れるbuttonに適用されます
(前回のlayout_gravityに当たる)
最後にbuttonの中の文字のgravityを設定すれば完了です
これでlayout_gravityとgravityを動的に変更することができました

スポンサードリンク
【レイアウト カスタマイズの最新記事】