Scale background image to wrap content of layout
I had the same problem (I think), and the only solution I could find was this:
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/some_image" android:layout_alignTop="@+id/actual_content" android:layout_alignBottom="@id/actual_content" android:layout_alignLeft="@id/actual_content" android:layout_alignRight="@id/actual_content" /> <LinearLayout android:id="@id/actual_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" > <!-- more stuff ... --> </LinearLayout></RelativeLayout>
You may try this trick,
- FrameLayout (wrapcontent, wrapcontent)
- ImageView (match parent, match parent) // its your background
- LinearLayout (wrapcontent, wrapcontent)
- All your contents goes inside this linear layout or any other type what ever you want
Work with RealtiveLayout (no mandatory but instead of FrameLayout and use android:scaleType="fitXY". Move the imageView to RealtiveLayout which contains the textviews android:id="@+id/HeaderList" and unset the background android:background="@drawable/header" at this level.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/principal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/header" > <RelativeLayout android:layout_width="fill_parent" android:id="@+id/HeaderList" android:layout_gravity="top" android:layout_height="wrap_content" > <ImageView android:id="@+id/backImg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" android:adjustViewBounds="true" android:background="@color/blancotransless" android:src="@drawable/header" android:scaleType="fitXY" > </ImageView> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/NameText" android:text="John Doe" android:textColor="#FFFFFF" android:textSize="30sp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:paddingLeft="4dp" android:paddingTop="4dp" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#FFFFFF" android:layout_alignParentLeft="true" android:id="@+id/HoursText" android:text="170 hours" android:textSize="23sp" android:layout_below="@+id/NameText" android:paddingLeft="4dp" /> </RelativeLayout> </RelativeLayout>
More or less it should work!