ImageView超出了父边界?

时间:2013-03-08 18:18:05

标签: android android-layout

我是Android开发的新手,但我似乎遇到了一个非常简单的问题。我试图用三种线性布局布局屏幕,顶部占12.5%,中间占73%,底部占14.5%。在顶部区域,我想放置一个相对布局,在顶部线性布局中使用ImageView。 (这个布局还有很多,有按钮和所有东西,但我把它剥离下来以显示问题)。

如果我删除了ImageView,一切都完美阻挡,我得到了正确大小的漂亮矩形区域。但是使用ImageView,顶部线性区域的高度至少扩展到屏幕的3/4!

我希望RelativeLayout保持在顶部线性区域内。有什么想法吗?

顺便说一下,我的drawable / top_bar本身是800px宽,高186px。

这是布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/masterLinearLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fitsSystemWindows="false"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout
        android:id="@+id/linearTop"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".125"
        android:orientation="horizontal"
        android:layout_alignParentTop="true" >

    <RelativeLayout
        android:id="@+id/topToolbarRelativeLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true" >

        <ImageView
            android:id="@+id/topBar"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:scaleType="fitStart"
            android:src="@drawable/top_bar" />

    </RelativeLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearMiddle"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:layout_weight=".730">

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearBottom"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal"
        android:layout_weight=".145">

    </LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

您可以尝试将比例因子设置为fitXY。类似的东西:

android:scaleType="fitXY"

答案 1 :(得分:0)

我刚试过它。将ImageView更改为以下内容:

 <ImageView
        android:id="@+id/topBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:scaleType="fitStart"
        android:src="@drawable/top_bar" />