Rajeev
Rajeev

Reputation: 115

The relative layout leaving spaces where it should not?

Hi I am using a relative layout to align the image at the bottom but the image is giving away some margin at the top and at the bottom. My code is as below

<?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="match_parent"
    android:orientation="vertical" 
    android:background="@drawable/back" >
     <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
       <ImageView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:src="@drawable/compare1footer"
            android:layout_alignParentBottom="true" />
    </RelativeLayout>
</LinearLayout>

Can someone help me out with this. Thank you

I tried using Fllo answer and i am attaching the screenshot

there is a space below the image where as it should go to the bottom

I am uploading the png

enter image description here

Upvotes: 0

Views: 103

Answers (4)

DSS
DSS

Reputation: 7259

try changing this:

<ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:src="@drawable/compare1footer"
        android:layout_alignParentBottom="true" />

to

<ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:src="@drawable/compare1footer"
        android:layout_alignParentBottom="true" />

Upvotes: 1

Rushabh Patel
Rushabh Patel

Reputation: 3080

Replace your code for Image View from:

<ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:src="@drawable/compare1footer"
        android:layout_alignParentBottom="true" />

To:

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:src="@drawable/compare1footer"
        android:adjustViewBounds="true"
        android:layout_alignParentBottom="true" />

android:adjustViewBounds="true" is the solution of your problem.

Hope it will help you..

Upvotes: 0

Blo
Blo

Reputation: 11978

I think it's because you use android:layout_alignParentTop="true" at the same time. You don't need a parent LinearLayout but you need to set your RelativeLayout height to match_parent. Try as follows:

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

   <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/compare1footer"
        android:layout_alignParentBottom="true"
        android:scaleType="FIT_XY" />

</RelativeLayout>  

As Rat-a-tat-a-tat Ratatouille suggested, I think it's the right way to avoid deformation with your image. The attribute scaleType according to the Reference is to:

Scale in X and Y independently, so that src matches dst exactly. This may change the aspect ratio of the src

It's not a bad idea.

Upvotes: 1

Mani
Mani

Reputation: 3467

Try to change:

<?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="match_parent"
    android:orientation="vertical" 
    android:background="@drawable/back" >
     <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"         >
       <ImageView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:src="@drawable/compare1footer"
            android:layout_alignParentBottom="true" />
    </RelativeLayout>
</LinearLayout>

to this:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/ic_launcher" >
    </ImageView>

</RelativeLayout>

Upvotes: 0

Related Questions