如何在 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
.
之上
我想在我的 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
.