如何在LinearLayout中的同一行上设置Imageview和Textview

时间:2015-04-26 07:11:05

标签: android android-linearlayout

我想在LinearLayout的同一行设置Imageview和Textview,但Imageview总是高于Textview。

这是我的代码:

String b[] = cacBuocThucHien.split("#");
for (int j = 0; j < b.length; j++) {
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(30,30);
    lp.setMargins(50, 0, 0, 0);
    ImageView img = new ImageView(RecipesDetailActivity.this);
    TextView tv = new TextView(RecipesDetailActivity.this);
    img.setLayoutParams(lp2);
    img.setImageResource(R.mipmap.testic);
    tv.setLayoutParams(lp);
    tv.setText(b[j] + "\n");
    layoutHuongDan.addView(img);
    layoutHuongDan.addView(tv);
}

4 个答案:

答案 0 :(得分:0)

这可以用来将图像放在一行..它将适用于所有类型的布局。希望这会对你有所帮助

  <LinerLayout>     
   <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
  <TextView
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
   ....... // Put how many TextViews you want

 <TextView
        android:id="@+id/textn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 </LinerLayout>

如果您只想在设置文本后显示这些文本视图,则可以设置最初的可见性。 现在,在您的活动中,创建一系列像这样的文本视图ID ...

public static int[] textRows = {R.id.text1, R.id.text2, ........ R.id.textn};

然后使用for循环初始化它们并像这样设置文本和图像

   TextView[] allTexts = new TextView[n];
   for (int i = 0; i < n; i++) {
        allTexts[i] = (TextView) findViewById(textRows[i]);
        allTexts[i].setText("your text");
        allTexts[i].setCompoundDrawables(left_image, null, null, null); 
    }

它会起作用。试一试

答案 1 :(得分:0)

设置textview drawable left不需要额外的imageview

android:drawableLeft="@drawable/img"

答案 2 :(得分:0)

如果您只想在TextView旁边显示一个图标,我认为您应该考虑使用TextView的{​​{3}}

tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0);

但如果您坚持使用彼此相邻的两个视图,那么在这种情况下使用drawable icon feature会很有用。

lp.gravity= Gravity.CENTER_VERTICAL;

答案 3 :(得分:0)

如果您只想显示TextViewImageView ..请在CompounDrawable内设置TextView ..

但是,要在LinearLayout中以orientation=horizontal方式并排设置C# WPF,请查看this link