2012-02-21 4 views
3

У меня проблема с моим списком, который содержит ImageView и несколько TextView для каждого элемента.Android Listview Размер изображения

Более или менее, есть две линии TextViews и один ImageView (XX), который должен взять две строки:

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

Моя проблема, когда я изменить изображение в ImageView. Моя цель - иметь ту же высоту для изображения, что и для двух текстовых изображений. Но мой образ 400x300, изображение будет расширено, чтобы его содержать. Я попытался получить высоту изображения с помощью getHeight или getMeasuredHeight, чтобы изменить размер растрового изображения, прежде чем поместить его в 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

Установите фиксированную высоту изображения и установите масштаб изображения вида FIT_XY или CENTER_INSIDE. FIT_XY будет масштабировать ваше изображение до требуемой ширины и высоты независимо от формата изображения, поэтому изображение может растягиваться, CENTER_INSIDE будет масштабировать ваше изображение в заданных размерах, поддерживая пропорции изображения, поэтому изображение может выглядеть более реалистичным, чем доступное пространство.

+0

Но я не знаю значения высоты TextViews. Он может меняться в зависимости от устройства нет? – user1029309

+0

, в этом случае у вас осталось только два варианта: один - wrap_content или fill_parent, и в обоих случаях высота изображения будет зависеть от размеров изображения, если размер изображения больше, чем текст. – jeet

+0

Хорошо, я нашел способ управлять им, спасибо: D – user1029309

0

Вы можете установить LayoutParams из ImageView в код, чтобы он имел высоту, равную TextView1 + TextView3.

Смежные вопросы