int num=10; int num1=3; int num2=0; if(num%num1!=0){ num2=num/num1+1; }else{ num2=num/num1; } oneCategory = new LinearLayout[num]; oneImageCategory = new LinearLayout[num]; tvCategory = new TextView[num]; imm = new ImageButton[num];
for(int i=0;i<num2;i++){ LinearLayout oneLineCategory = new LinearLayout(this); oneLineCategory.setOrientation( LinearLayout.HORIZONTAL ); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(mywidth, 90); oneLineCategory.setLayoutParams(lp); if(num%num1!=0&&i==num2-1){ for(int j=0;j<num%num1;j++){ thisnum = i * num1 + j; oneCategory[thisnum] = new LinearLayout(this); oneCategory[thisnum].setOrientation( LinearLayout.VERTICAL ); LinearLayout.LayoutParams lpp = new LinearLayout.LayoutParams(mywidth/3, 90); oneCategory[thisnum].setLayoutParams(lpp);
oneImageCategory[thisnum] = new LinearLayout(this); LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams(84, 70); rlp.leftMargin = 11; rlp.topMargin=5; oneImageCategory[thisnum].setLayoutParams(rlp);
imm[thisnum] = new ImageButton(this); imm[thisnum].setBackgroundDrawable(this.getResources().getDrawable(R.drawable.chengzhong)); LinearLayout.LayoutParams lpp1 = new LinearLayout.LayoutParams(84, 70); imm[thisnum].setLayoutParams(lpp1); imm[thisnum].setOnClickListener(new OnClickListener(){ public void onClick(View v) {
a.首先试下换行符在按钮上是否有效,
b.如a不行,就用EditView或TextView代替(这个可以支持换行),不用按钮,
然后响应EditView的OnTouch事件即可模拟"三行显示的按钮"
c.可以考虑从view继承,自定义一个你可以"三行显示的按钮" 2.将按钮显示在界面:
用ScrollView包一个LinearLayout,然后用new或Inflator动态生成8个按钮,逐个使用LinearLayout.addView()方法添加到LinearLayout即可
btnJisuan.setText("hello\nworld");
2.用addView就可以了,如1L所说。
int num1=3;
int num2=0;
if(num%num1!=0){
num2=num/num1+1;
}else{
num2=num/num1;
} oneCategory = new LinearLayout[num];
oneImageCategory = new LinearLayout[num];
tvCategory = new TextView[num];
imm = new ImageButton[num];
for(int i=0;i<num2;i++){
LinearLayout oneLineCategory = new LinearLayout(this);
oneLineCategory.setOrientation( LinearLayout.HORIZONTAL );
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(mywidth, 90);
oneLineCategory.setLayoutParams(lp);
if(num%num1!=0&&i==num2-1){
for(int j=0;j<num%num1;j++){
thisnum = i * num1 + j;
oneCategory[thisnum] = new LinearLayout(this);
oneCategory[thisnum].setOrientation( LinearLayout.VERTICAL );
LinearLayout.LayoutParams lpp = new LinearLayout.LayoutParams(mywidth/3, 90);
oneCategory[thisnum].setLayoutParams(lpp);
oneImageCategory[thisnum] = new LinearLayout(this);
LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams(84, 70);
rlp.leftMargin = 11;
rlp.topMargin=5;
oneImageCategory[thisnum].setLayoutParams(rlp);
imm[thisnum] = new ImageButton(this);
imm[thisnum].setBackgroundDrawable(this.getResources().getDrawable(R.drawable.chengzhong));
LinearLayout.LayoutParams lpp1 = new LinearLayout.LayoutParams(84, 70);
imm[thisnum].setLayoutParams(lpp1);
imm[thisnum].setOnClickListener(new OnClickListener(){
public void onClick(View v) {
}
});