2012-02-21 95 views
3

我的列表视图中有一个问题,它包含一个ImageView和每个项目的几个TextView。Android列表查看图片大小

更多或更少的,有TextViews的两条线和一个ImageView的(XX)应该采取的两行:

|XX| TextView 1  TextView 2 
|XX| TextView 3  TextView 4 

我的问题是,当我在ImageView的改变图像。我的目标是将图像视图的高度与两个文本视图的高度放在一起。但是我的图像是400x300,imageview被扩展来包含它。我试图通过getHeight或getMeasuredHeight来获取imageView的高度,然后在将其放入imageView之前调整位图大小,但不起作用。

我为ListView布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/list_poi_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:scaleType="centerCrop" 
    android:contentDescription="@string/points_of_interest_activity_image_content_description" /> 

<TextView 
    style="@style/CarloText" 
    android:id="@+id/list_poi_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_toRightOf="@+id/list_poi_image" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    style="@style/CarloText" 
    android:id="@+id/list_poi_description" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/list_poi_name" 
    android:layout_below="@+id/list_poi_name" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

...

感谢您的帮助!

回答

3

将一些固定高度设置为imageview,并设置imageView FIT_XY或CENTER_INSIDE的缩放类型。 FIT_XY会将图像缩放到所需的宽度和高度,而不考虑纵横比,因此图像可能会伸展,CENTER_INSIDE会按给定尺寸缩放图像,从而保持图像的纵横比,因此图像看起来可能比可用空间更小。

+0

但我不知道TextViews的高度值。它可能会根据设备的不同而有所不同? – user1029309 2012-02-21 11:13:43

+0

在这种情况下,您只剩下两个选项,一个是wrap_content或fill_parent,并且在两种情况下,如果图像大小大于文本高度,imageview的高度将取决于图像的尺寸。 – jeet 2012-02-21 11:23:11

+0

好吧,我找到了一种方法来管理它,谢谢你:D – user1029309 2012-02-21 11:51:59

0

您可以在代码中设置ImageViewLayoutParams,使其高度等于TextView1 + TextView3