图像覆盖相对布局

时间:2012-10-15 14:24:37

标签: android android-layout

我有两个相对布局,圆角矩形边框,它们之间没有任何空格。 我希望图像覆盖在由边界生成的公共线上 怎么能实现呢?

enter image description here

布局代码:

//COde for the layout.
  <RelativeLayout
                android:id="@+id/Layout1"
                android:layout_width="300dp"
                android:layout_height="60dp"
                android:layout_below="@id/selectText"
                android:layout_marginLeft="10dp"
                android:background="@layout/rounded_border_1" >

                <TextView
                    android:id="@+id/Text1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerInParent="true"
                    android:layout_marginLeft="10dp"
                    android:text="@string/string1"
                    android:textColor="@color/text_color"
                    android:textSize="14sp" />

                <TextView
                    android:id="@+id/Name1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@id/Text1"
                    android:layout_alignParentRight="true"
                    android:layout_marginRight="20dp"
                    android:hint="@string/hint"
                    android:textColor="@color/hint_color"
                    android:textSize="14sp" />
            </RelativeLayout>

//code for the image
            <ImageButton
                android:id="@+id/image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="30dp"
                android:src="@drawable/swap"/>

//code for the layout
            <RelativeLayout
                android:id="@+id/Layout2"
                android:layout_width="300dp"
                android:layout_height="60dp"
                android:layout_below="@id/Layout1"
                android:layout_marginLeft="10dp"
                android:background="@layout/rounded_border_2" >

                <TextView
                    android:id="@+id/Text2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerInParent="true"
                    android:layout_marginLeft="10dp"
                    android:text="@string/string2"
                    android:textColor="@color/text_color"
                    android:textSize="14sp" />

                <TextView
                    android:id="@+id/Name2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@id/Text2"
                    android:layout_alignParentRight="true"
                    android:layout_marginRight="20dp"
                    android:hint="@string/hint"
                    android:textColor="@color/hint_color"
                    android:textSize="14sp" />
            </RelativeLayout>
    //Code for the border1

rounded_border_1.xml

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >

        <gradient
            android:angle="270"
            android:endColor="@color/gradient_end"
            android:startColor="@color/gradient_start" />

        <stroke
            android:width="1dp"
            android:color="@color/canvas_border" />

        <corners
            android:bottomLeftRadius="0dp"
            android:bottomRightRadius="0dp"
            android:topLeftRadius="5dp"
            android:topRightRadius="5dp" />

    </shape>

rounded_border_2.xml

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >

        <gradient
            android:angle="270"
            android:endColor="@color/gradient_end"
            android:startColor="@color/gradient_start" />

        <stroke
            android:width="1dp"
            android:color="@color/canvas_border" />

        <corners
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"
            android:topLeftRadius="0dp"
            android:topRightRadius="0dp" />

    </shape>

1 个答案:

答案 0 :(得分:3)

您还需要将布局嵌入RelativeLayout中。我只会添加重要的属性,以便更容易看到它们:

<!-- surrounding RelativeLayout not visible -->
<RelativeLayout
    android:layout_height="120dp"
    android:layout_below="@id/selectText">
    <RelativeLayout
        android:id="@+id/Layout1"
        android:layout_width="300dp"
        android:layout_height="60dp" >
        <TextView />
        <TextView />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/Layout2"
        android:layout_width="300dp"
        android:layout_height="60dp"
        android:layout_below="@id/Layout1" >
        <TextView />
        <TextView />
    </RelativeLayout>
    <ImageButton
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:src="@drawable/swap" />
</RelativeLayout>