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

Android 如何设置listview的行高以适应图像大小,android,listview,Android,Listview,我正在构建一个包含两个ImageView和一个textview的listview。但是我没有得到正确的外观。图标变小或变大,或者行周围有很多空白。如果我将imageview的scaletype更改为居中,图标会变得太小,周围有很多空间。当我将scaletype更改为fitcenter时,图标会变得太大。无论哪种情况,它看起来都很难看。我更改了imageview的布局高度以匹配父视图。多余的空间消失了,但图标变得太小。我使用的是64x64像素的png图像和Nexus7模拟器。我正在粘贴下面的xml

我正在构建一个包含两个ImageView和一个textview的listview。但是我没有得到正确的外观。图标变小或变大,或者行周围有很多空白。如果我将imageview的scaletype更改为居中,图标会变得太小,周围有很多空间。当我将scaletype更改为fitcenter时,图标会变得太大。无论哪种情况,它看起来都很难看。我更改了imageview的布局高度以匹配父视图。多余的空间消失了,但图标变得太小。我使用的是64x64像素的png图像和Nexus7模拟器。我正在粘贴下面的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大小的图标,即使这样也无济于事。

您需要设置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" >

希望它有助于

为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属性,图像会自动调整到所需高度,而不会发生任何失真。

您能否附加图像/屏幕截图以了解您想要的内容请参考这些链接以了解有关ListView的更多信息,但这是一种好方法吗?我的意思是,我将使用不同大小的图标来显示不同密度的屏幕。这将使大小保持静态,意味着我必须为不同的屏幕定义不同的布局。为每个屏幕密度创建列表项,比较并查看相应的内容,尝试使用不同的密度和屏幕大小运行此操作,并查看结果