0

プログラムで RelativeLayout を追加しようとしています。レイアウトには、イメージビューとテキストビューが水平に含まれています。現在、両方が重なり合っています。プログラムでLayoutParamsを使用して配置を適切に設定するには?

        RelativeLayout rl  = new RelativeLayout(this);
        RelativeLayout.LayoutParams myparam = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.FILL_PARENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        TextView tv = new TextView(this);
        tv.setText("test");
        tv.setTextColor(Color.WHITE);
        ImageView item = new ImageView(this);
        item.setImageResource(image);
        myparam.addRule(RelativeLayout.ALIGN_RIGHT);
        tv.setLayoutParams(myparam);
        rl.addView(item);
        rl.addView(tv);
4

3 に答える 3

0

このコードを試してください

RelativeLayout rl = new RelativeLayout(this); RelativeLayout.LayoutParams myparam = new           RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT,   RelativeLayout.LayoutParams.WRAP_CONTENT);

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

TextView tv = new TextView(this); tv.setText("test"); 
tv.setId(1);
tv.setTextColor(Color.WHITE); 
tv.setLayoutParams(lprams); 
rl.addView(tv);

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

ImageView item = new ImageView(this); 
item.setImageResource(image); 
newParams.addRule(RelativeLayout.RIGHT_OF, 1); 
item.setLayoutParams(newParams);     
rl.addView(item);
于 2013-08-14T10:22:52.373 に答える
0

TextViewImageViewがそれぞれの でどのように関連LayoutParamsしているかを指定する必要があります。メソッドを使用addRuleして同じことを行うことができます。

例の場合:

item.setId(A_POSITIVE_INTEGER);
myparam.addRule(RelativeLayout.BELOW, item.getId());
tv.setLayoutParams(myparam);

の下に がTextView表示されますImageView

于 2013-08-14T10:20:29.927 に答える