2013-11-30 2 views
1

Я использую относительный макет для отображения строки в listlayout. То, что я показываю, - это изображение слева и два текста справа. Оба текстовых изображения будут иметь только одну строку.Сделать изменение размера изображения в соответствии с его контейнером

Мне нужно, чтобы изображение было таким, чтобы оно автоматически изменялось, поэтому его высота становится равной высоте комбинированного текста. Таким образом, высота изображения будет соответствовать общей высоте обоих текстов на всех экранах. Это возможно? Схема, как показано ниже -

<ImageView 
    android:id="@+id/note_img" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginRight="6dip" 
    android:src="@drawable/note_icon" /> 

<TextView android:id="@+id/text1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/note_img" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:includeFontPadding="true" 
    android:singleLine="true" 
    style="@android:style/TextAppearance.Medium" /> 

<TextView android:id="@+id/text2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/note_img" 
    android:layout_alignParentBottom="true" 
    android:layout_below="@id/text1" 
    android:singleLine="true" 
    style="@android:style/TextAppearance.Small" /> 

В настоящее время, note_img имеет размер 96x96 и изображение показывается в полном размере делает изображение области значительно большой, и два текста, имеющим огромным разрыв между ними. Действительно оцените любую помощь.

Спасибо, Arun

ответ

1

Не используйте fill_parent, это depreceated. Непроверено, дайте мне знать, если это работает:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

<ImageView 
    android:id="@+id/note_img" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_marginRight="6dip" 
    android:src="@drawable/note_icon" /> 

<LinearLayout 
    android:id="@+id/vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/text1" 
     style="@android:style/TextAppearance.Medium" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:includeFontPadding="true" 
     android:singleLine="true" /> 

    <TextView 
     android:id="@+id/text2" 
     style="@android:style/TextAppearance.Small" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:singleLine="true" /> 
</LinearLayout> 

+0

Благодаря @svenoaks, изменение размера прекрасно работает, но теперь на обеих сторонах изображения слишком много места. Вот фото - http://www.tiikoni.com/tis/view/?id=2054c3c – arunskrish

+0

проблема андроида: layout_width = "wrap_content" в ImageView, отрегулируйте это с помощью жесткого кодированного dp, и вы можете получить избавиться от пространства. Попытка думать о чем-то лучше, хотя. –

+0

Спасибо, но это снова заставило бы его выглядеть по-разному на разных экранах :( – arunskrish

0

После установить Text в TextView установить TextView's height в ImageView как

imageview.getLayoutParams().height = textViewheight; 
+0

Спасибо @Homo Sapients, но я хотел бы сделать это в самой верстки XML. Кроме того, есть два текстовых элемента. Следовательно, нужен не вычислительный метод :) Спасибо за помощь в любом случае. – arunskrish

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