arunskrish
arunskrish

Reputation: 417

Make imageview resize to fit its container

I use a relative layout to display a row in a listlayout. What I am showing is an imageview to the left and two textviews to the right. Both the textviews will only have a single line each.

I need to have the image such that it should be automatically resize so its height becomes equal to the height of the text combined. That way, the image height will fit the combined height of both text in all screens. Is this possible? layout is as below -

<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" />

As of now,note_img has a size of 96x96 and the image is shown in full size making the image area considerably large and the two text having huge gap between them. Really appreciate any help.

Thanks, Arun

Upvotes: 2

Views: 3828

Answers (2)

Steve M
Steve M

Reputation: 9784

Don't use fill_parent, it's depreceated. Untested, let me know if it works:

<?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>

Upvotes: 2

Subramanian Ramsundaram
Subramanian Ramsundaram

Reputation: 1347

After set the Text in TextView set the TextView's height to ImageView like

imageview.getLayoutParams().height = textViewheight;

Upvotes: 0

Related Questions