2012年03月09日

gravityとlayout_gravityを動的に変更する


前回はxmlソースファイルによりgravity属性を変更しました
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を動的に変更することができました
device47.png
スポンサードリンク

posted by kenken at 18:45 | Comment(0) | TrackBack(0) | レイアウト カスタマイズ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。