自定义列表视图中的Android图像高度

时间:2012-03-07 21:51:52

标签: android listview

我有一个包含自定义行的列表视图。在imageView1中我设置了一个图像,但它小于行的高度。图像大小为4x30px。当我设置40x300 img大小(以编程方式)时,行变得太大(我知道原因:wrap_content)。如何设置图像的高度拉伸到行的高度?

holder.image.setImageDrawable(convertView.getResources().getDrawable(R.drawable.priority_4x30));

xml.file:

   <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
    >
      <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/icon"
        android:focusable="false" />

      <TextView android:id="@+id/textView1" 
        android:layout_width="180dip" 
        android:layout_height="wrap_content"
        android:paddingTop="15dip"
        android:paddingBottom="15dip"
        android:textColor="#000000"
        android:layout_toRightOf="@+id/imageView1">
      </TextView>

      <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/icon"
        android:layout_toRightOf="@+id/textView1" />

      <CheckBox android:id="@+id/checkBox1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginRight="6sp"
        android:focusable="false"
        android:layout_toRightOf="@+id/imageView2">
      </CheckBox>

    </RelativeLayout>

1 个答案:

答案 0 :(得分:6)

你应该让每个项目的relativelayout都有一个静态高度

前:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">

然后你可以简单地改变你的imageview来填充父级的高度

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:src="@drawable/icon"
    android:layout_toRightOf="@+id/textView1" />