2012-02-21 96 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