2009-07-13 4 views
3

Я поставил ImageView и TextView в RelativeLayout, который используется в качестве элементов списка, и хочу ImageView вертикально расти с линией числом TextView. Вытяжным из ImageView является изображение вертикальной полосы png.Как сделать ImageView заполнить вертикально в RelativeLayout

Со следующим макетом, подумал, что это хорошо выглядит в представлении макета в Eclipse, ImageView не заполняет высоту RelativeView во время выполнения. Вместо этого он всегда сохраняет высоту исходного изображения.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <ImageView android:id="@+id/iv" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentLeft="true" 
     android:src="@drawable/vbar" 
     android:adjustViewBounds="false" 
     android:scaleType="fitXY"/> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:singleLine="false" 
     android:layout_toRightOf="@id/iv" 
     android:layout_alignParentBottom="true" /> 
</RelativeLayout> 

Почему это не работает, как я ожидал (или, как показано в виду Eclipse, Layout)?

+0

Если вы используете 'android: background' вместо' android: src', это что-то изменит? – Jakar

ответ

-1

Я хотел бы сделать несколько вещей:

  1. Упростите макет путем объединения TextView с «drawableLeft».
  2. Сделайте изображение 9-патча, чтобы оно соответствовало.
1

Я внесла некоторые изменения в ваш код.

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

    <TextView 
     android:id="@+id/tv" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:singleLine="false" 
     android:text="@string/text" /> 

    <ImageView 
     android:id="@+id/iv" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_above="@id/tv" 
     android:adjustViewBounds="false" 
     android:scaleType="fitXY" /> 

</RelativeLayout> 

Теперь он дает правильный выход. Что я сделал, сначала объявил текст и выровнял его до нижней части родителя. Затем объявили imageview и распознали его на верхней части textview. Таким образом, изображение будет начинаться чуть выше текстового поля и отображать всю оставшуюся высоту. Я также тестировал многострочный текст. Надеюсь, поможет.