0

相対レイアウトに画像を配置しました。背景画像の上に小さな画像を配置し、画像の横に2つのテキストビューを並べて配置するにはどうすればよいですか。どんな助けでも本当にありがたいです。唯一のことは、これをプログラムで実行したいということです。次のように試してみましたが、どういうわけか画面左上にテキストビューが表示されます。imagebuttonに表示したい。

LinearLayout LinearLayout = new LinearLayout(this); 
RelativeLayout relativeLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams relativeLayoutParams;  

Button[] btn = new Button[1];   
btn[0] = new Button(this);
btn[0].setId(1);
btn[0].setGravity(Gravity.CENTER);
btn[0].setText("text");        
btn[0].setBackgroundResource(R.drawable.button_grey);
btn[0].setTextColor(Color.parseColor("#FFFFFF"));


relativeLayoutParams = new     RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                                       RelativeLayout.LayoutParams.WRAP_CONTENT);

relativeLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT | RelativeLayout.ALIGN_PARENT_TOP);

relativeLayoutParams.setMargins(20, 20, 15, 15);

relativeLayout.addView(btn[0], relativeLayoutParams);

ImageButton[] Imgbtn = new ImageButton[10];
Imgbtn[0] = new ImageButton(this);
Imgbtn[0].setId(2);   
Imgbtn[0].setBackgroundResource(R.drawable.box_round_corners); 
Imgbtn[0].setMaxHeight(200);
Imgbtn[0].setClickable(true);

relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                                       RelativeLayout.LayoutParams.WRAP_CONTENT);


relativeLayoutParams.addRule(RelativeLayout.BELOW,btn[0].getId());
relativeLayoutParams.height = 100;    
relativeLayoutParams.setMargins(15, 0, 15, 10);
Imgbtn[0].setLayoutParams(relativeLayoutParams);

relativeLayout.addView(Imgbtn[0], relativeLayoutParams);

TextView[] txtview = new TextView[10];
txtview[0] = new TextView(this);
txtview[0].setId(3);
txtview[0].setTextColor(Color.parseColor("#000000"));
txtview[0].setText("text");  

relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                                       RelativeLayout.LayoutParams.WRAP_CONTENT);

// RelativeLayoutParams.addRule(RelativeLayout.ALIGN_LEFT | RelativeLayout.ALIGN_TOP);

relativeLayoutParams.addRule(RelativeLayout.BELOW,Imgbtn[0].getId());
relativeLayoutParams.height = 20;    
relativeLayoutParams.setMargins(5, 5, 5, 5);
txtview[0].setLayoutParams(relativeLayoutParams);

relativeLayout.addView(txtview[0], relativeLayoutParams);


android.widget.ScrollView ScrollV = new ScrollView(this); 
ScrollV.addView( relativeLayout, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
addContentView(ScrollV, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
4

1 に答える 1

0

setLayoutParams()メソッドを使用してビューのLayoutParamsを設定してみてください。

RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(width,height);
lp.topMargin=//what is your desired y coordinate
lp.leftMargin=//what is your desired x coordinate
lp.gravity=Gravity.NO_GRAVITY;
view.setLayoutParams(lp);

私の意見では、FrameLayoutはオーバーレイの目的に適しています。

于 2012-12-05T14:57:13.430 に答える