場合によって、Buttonの色なんかを変えたくて
ググってみたけど。

クリックの有無での変化は
たくさんサンプルが転がっていたけど
それ以外はみつけられず。

で、RelativeLayoutをxmlを使わないで
コードで書いて
そこで条件文を使ってみることにした。

でも、RelativeLayoutのコードのみバージョンってーのも
サンプルがない。

仕方ないから、試行錯誤しながら、作ってみた。
下は真ん中の「1」を基準としているが
上はそれ以外で指定してみた。

一応、できた…。

 

RelativeLayout relativeLayout = new RelativeLayout(this);
setContentView(relativeLayout);

Button button1 = new Button(this);
button1.setId(1);
button1.setText(“1”);
RelativeLayout.LayoutParams param1 = createParam(85, 85);
param1.addRule(RelativeLayout.CENTER_IN_PARENT);
relativeLayout.addView(button1, param1);

Button button2 = new Button(this);
button2.setId(2);
button2.setText(“2”);
RelativeLayout.LayoutParams param2 = createParam(85, 85);
param2.addRule(RelativeLayout.CENTER_VERTICAL,1);
param2.addRule(RelativeLayout.LEFT_OF, 1);
relativeLayout.addView(button2, param2);

Button button3 = new Button(this);
button3.setId(3);
button3.setText(“3”);
RelativeLayout.LayoutParams param3 = createParam(85, 85);
param3.addRule(RelativeLayout.CENTER_VERTICAL,1);
param3.addRule(RelativeLayout.RIGHT_OF, 1);
relativeLayout.addView(button3, param3);

Button button4 = new Button(this);
button4.setId(4);
button4.setText(“4”);
RelativeLayout.LayoutParams param4 = createParam(85, 85);
param4.addRule(RelativeLayout.CENTER_HORIZONTAL,1);
param4.addRule(RelativeLayout.BELOW, 1);
relativeLayout.addView(button4, param4);

Button button5 = new Button(this);
button5.setId(5);
button5.setText(“5”);
RelativeLayout.LayoutParams param5 = createParam(85, 85);
param5.addRule(RelativeLayout.CENTER_HORIZONTAL,1);
param5.addRule(RelativeLayout.BELOW,1);
param5.addRule(RelativeLayout.RIGHT_OF, 1);
relativeLayout.addView(button5, param5);

Button button6 = new Button(this);
button6.setId(6);
button6.setText(“6”);
RelativeLayout.LayoutParams param6 = createParam(85, 85);
param6.addRule(RelativeLayout.CENTER_HORIZONTAL,1);
param6.addRule(RelativeLayout.BELOW,1);
param6.addRule(RelativeLayout.LEFT_OF,1 );
relativeLayout.addView(button6, param6);

Button button7 = new Button(this);
button7.setId(7);
button7.setText(“7”);
RelativeLayout.LayoutParams param7 = createParam(85, 85);
param7.addRule(RelativeLayout.CENTER_HORIZONTAL,1);
param7.addRule(RelativeLayout.ABOVE, 1);
relativeLayout.addView(button7, param7);

Button button8 = new Button(this);
button8.setId(8);
button8.setText(“8”);
RelativeLayout.LayoutParams param8 = createParam(85, 85);
param8.addRule(RelativeLayout.RIGHT_OF,7);
param8.addRule(RelativeLayout.ABOVE, 1);
relativeLayout.addView(button8, param8);

Button button9 = new Button(this);
button9.setId(9);
button9.setText(“9”);
RelativeLayout.LayoutParams param9 = createParam(85, 85);
param9.addRule(RelativeLayout.LEFT_OF,7);
param9.addRule(RelativeLayout.ABOVE, 2);
relativeLayout.addView(button9, param9);
}

private RelativeLayout.LayoutParams createParam(int w, int h){
return new RelativeLayout.LayoutParams(w, h);
}