如何在 RelativeLayout 中将 ImageButton 放置在 ImageView 上

How to place ImageButton over ImageView in RelativeLayout

我想在我的 RelativeLayout 中使用两个 ImageButton 和一个 ImageView 来执行此操作。不使用 marginTop 是否可以做到这一点?欢迎任何回应。 我的 xml 代码:

        <ImageView 
       android:id="@+id/imageview"
       android:layout_width="match_parent"
       android:layout_height="150dp"
       android:scaleType="fitXY"
       android:layout_alignParentBottom = "true"
       android:src="@drawable/image1"/>

   <ImageButton
       android:id="@+id/imagebutton1"
       android:layout_width="70dp"
       android:layout_height="50dp"
       android:scaleType="fitXY"
       android:layout_alignParentRight="true"
       android:layout_alignParentBottom = "true"
       android:background="@drawable/image2"/>

      <ImageButton
       android:id="@+id/imagebutton2"
       android:layout_width="70dp"
       android:layout_height="50dp"
       android:scaleType="fitXY"
       android:layout_alignParentLeft="true"
       android:layout_alignParentBottom = "true"
       android:background="@drawable/image3"/>

你应该在 Framelayout 中先添加 imageView,然后再添加 imageButton。

请点击以下链接: http://code.tutsplus.com/tutorials/android-user-interface-design-frame-layouts--mobile-4877

http://javatechig.com/android/android-framelayout-example

使用 Relativelayout 则不能。

RelativeLayouts 几乎总是正确的布局,它们非常强大。在你的情况下,你可以简单地使用 'android:layout_centerVertical="true"',但去掉 'layout_alignParentBottom'

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="150dp">
    <ImageView
            android:id="@+id/imageview"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:scaleType="fitXY"
            android:layout_alignParentBottom = "true"
            android:src="@drawable/image1"/>

    <ImageButton
            android:id="@+id/imagebutton1"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:scaleType="fitXY"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:background="@drawable/image2"/>

    <ImageButton
            android:id="@+id/imagebutton2"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:scaleType="fitXY"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:background="@drawable/image3"/>
</RelativeLayout>

以我的个人经验:如有疑问,请使用 RelativeLayout。

尝试android:layout_centerVertical="true"

如果我得到正确的答案,那么您可以在代码中完成。 分配所有视图后(findViewById(...) 次调用)将以下行添加到您的代码中:

mMyImageButton.bringToFront();

希望对您有所帮助!

我建议在这种情况下使用 FrameLayout。在 FrameLayout 中,z-index 由添加项目的顺序定义。所以你在 FrameLayout 中的最后一个元素应该是 ImageButton 这样它就会被绘制在 ImageView.

之上