2013-08-14 2 views
0

Я пытаюсь добавить RelativeLayout программно. Макет содержит изображение и текстовое изображение по горизонтали. Теперь оба накладываются друг на друга. Как правильно настроить выравнивание с помощью LayoutParams?Проблема с программным выравниванием внутри Относительная компоновка в Android

 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); 

ответ

2
Check this code now..this will help 

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

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

ImageView item = new ImageView(this); 
item.setImageResource(image); 
item.setId(1); 
item.setLayoutParams(newParams);  
rl.addView(item); 

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

TextView tv = new TextView(this); tv.setText("test"); 
tv.setTextColor(Color.WHITE); 
tv.setLayoutParams(lprams); 
lprams.addRule(RelativeLayout.RIGHT_OF, 1); 

rl.addView(tv); 
+0

Текст не отображается в этом – intrepidkarthi

+0

цвет вашего текста белый, проверьте цвет фона, если цвет фона белый, измените txtview на другой цвет. – AndroUser

+0

фон только черный. – intrepidkarthi

0

Вы должны указать, каким образом TextView и ImageView являются , связанные в соответствующих LayoutParams. Вы можете использовать метод addRule, чтобы сделать то же самое.

Для ЭТИХ:

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

сделает TextView появляется ниже ImageView.

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); 
+0

Эй, это выравнивает текст по левым к изображению – intrepidkarthi

+0

да, если вы хотите ImageView по левой стороне, то используйте код ImageView первым, а затем TextView, таким образом, вы будете getviewview и textview правильно выровнены ..thanks – AndroUser

Смежные вопросы