0

我正在尝试使用文本和图像创建列表视图。填充布局有效,但我layout_height="wrap_content"ImageView. 填充列表后,列表项的高度是图像高度的两倍,图像本身下方和上方有很多空间。如何避免空白空间并ListItem在图像周围环绕高度?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/product_preview_product"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:gravity="center" />

    <ImageView
        android:id="@+id/product_preview_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/product_preview_product" />
</RelativeLayout>

修改后的适配器的getView()方法:

@Override
public View getView(int position, View convertView,
        ViewGroup parent) {
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.product_preview, parent, false);
    }

    Product product = getItem(position);

    TextView productText = (TextView) convertView.findViewById(R.id.product_preview_product);
    productText.setText(product.name);

    // load image

    ImageView imageView = (ImageView) convertView.findViewById(R.id.product_preview_image);
    imageView.setImageDrawable(image);

    return convertView;
}
4

3 回答 3

2

我多次遇到同样的问题并设置

android:adjustViewBounds="true"  
android:scaleType="fitCenter"

在我的 ImageViews 上成功了,试一试。AdjustViewBounds 的文档说

如果您希望 ImageView 调整其边界以保持其可绘制对象的纵横比,请将其设置为 true。

于 2013-10-22T09:03:34.233 回答
0

用这个

android:layout_width="wrap_content"
android:layout_height="wrap_content"

如果您的图像很大,请在此处设置适当的大小。

于 2013-10-22T08:47:43.743 回答
0

设置布局及其子小部件的权重 android:weightSum="1.2"

<TextView
    android:id="@+id/product_preview_product"
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_weight=".2"
    android:gravity="center" />
<ImageView
    android:id="@+id/product_preview_image"
    android:layout_width="wrap_parent"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:layout_below="@id/product_preview_product" />
于 2013-10-22T08:50:15.700 回答