如何设置listview的行高以适合图像大小

时间:2014-04-25 05:57:33

标签: android listview

我正在构建一个包含两个图像视图和一个textview的列表视图。但我看不出正确的样子。图标变得太小或太大,或者行周围有很多空白空间。如果我将imageview的scaletype更改为center,则图标会变得太小而周围有很多空间。当我将scaletype更改为fitcenter时,图标变得太大。在任何一种情况下,它看起来很丑。我更改了imageview的布局高度以匹配父级,额外的空间消失但图标变得太小。我正在使用64x64像素的png图像和nexus 7模拟器。我正在粘贴下面的xml文件 -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#F6F6F6"
    android:orientation="horizontal"
    android:weightSum="10" >

    <ImageView
        android:id="@+id/imgIcon"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="center"
        android:layout_marginBottom="5dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="5dp"
        android:layout_weight="3"
        android:adjustViewBounds="true"
        android:gravity="center_vertical"
        android:scaleType="fitCenter" />

    <TextView
        android:id="@+id/txtTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:layout_weight="6"
        android:gravity="center_vertical"
        android:textColor="#000000"
        android:textSize="18sp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:src="@drawable/arrow_right" />

</LinearLayout>

我很困惑。请帮忙。提前谢谢。

我使用了128x128大小的图标,即使没有帮助。

2 个答案:

答案 0 :(得分:0)

您需要设置android:minHeight,将其设置为您希望保留每个列表视图项的大小,以便图像正确显示在您的情况下64像素高度

这是代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:minHeight="64dp"
    android:background="#F6F6F6"
    android:orientation="horizontal"
    android:weightSum="10" >

希望有所帮助

答案 1 :(得分:0)

对于imageview提供这两个属性, android:minHeight和android:scaleType

示例:

  <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:src="@drawable/arrow_right"
            android:minHeight="@dimen/minHeight"
            android:scaleType="centerCrop" />

使用此scaletype属性,图像会自动调整到所需的高度而不会出现任何失真。