相对布局留下不应该的空间?

时间:2014-04-03 09:59:48

标签: android android-layout

您好我使用相对布局来对齐底部的图像,但图像在顶部和底部给出了一些边距。我的代码如下

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

有人可以帮我解决这个问题。谢谢

我尝试使用Fllo的答案,我附上截图

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

我正在上传png

enter image description here

4 个答案:

答案 0 :(得分:1)

我认为这是因为您同时使用android:layout_alignParentTop="true"。您不需要父LinearLayout,但您需要将RelativeLayout身高设置为match_parent。请尝试如下:

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

正如 Rat-a-tat-a-tat Ratatouille 所说,我认为这是避免图像变形的正确方法。根据{{​​3}}的属性scaleType是:

  

独立地在X和Y中缩放,以便src与dst完全匹配。这可能会改变src的宽高比

这不是一个坏主意。

答案 1 :(得分:1)

尝试改变这一点:

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

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

答案 2 :(得分:0)

尝试改变:

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

到此:

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

答案 3 :(得分:0)

从以下位置替换Image View的代码:

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

要:

    <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"是您问题的解决方案。

希望它会帮助你..