将视图中心对齐到另一个视图的边缘

3

我有两个视图,例如两个ImageView。我希望它们看起来像这样 enter image description here

因此,View2的中心与View1的顶部对齐,而View1的水平中心与View2相同。

当前代码为

<RelativeLayout
    android:id="@+id/colorLayout"
    android:layout_width="wrap_content"
    android:layout_height="200dp"
    android:layout_above="@+id/colorList"
    android:layout_alignLeft="@+id/brightBarLayout"
    android:layout_alignRight="@+id/brightBarLayout"
    android:layout_below="@+id/brightBarLayout"
    android:layout_marginTop="@dimen/activity_horizontal_margin"        
    android:layout_marginBottom="@dimen/activity_horizontal_margin">

    <android.support.v4.view.ViewPager
        android:id="@+id/colorPicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </android.support.v4.view.ViewPager>

    <ImageButton
        android:id="@+id/imgBtnFaveColor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:background="@null"
        android:src="@drawable/ic_color_fave" />

</RelativeLayout>

我正在根据View2的高度动态设置View1的marginTop。

1个回答

4
像这样的东西。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/view1"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"/>
    <ImageView
        android:id="@+id/view2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignTop="@+id/view1"
        android:layout_alignLeft="@+id/view1"
        android:layout_marginTop="-50dp"
        android:layout_marginLeft="50dp"/>

</RelativeLayout>

但是我知道,如果设置这样的边距,它在某些设备上将不会居中。 - StupidFox
不,你并不完全正确。如果你使用dp,一切都会没问题的。你可以在这里了解有关不同度量标准之间的区别。此致敬礼。 - Roman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接