我正在尝试将一个小的ImageView放在一个按钮上,但不知怎的,它仍然在它下面。我不明白为什么这种布局与其他视图完美配合。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/background_white_clickable"
android:text="@string/book_now"
android:id="@+id/but_book_now"
/>
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:id="@+id/img_bookmark"
android:src="@drawable/ic_action_bookmark_full"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
我尝试使用不同的背景按钮,但只有透明时才能看到图像。我还尝试用彩色视图替换ImageView,仍然无效。
有什么想法吗? THX
编辑:
我得到的答案有些混乱,我的意思是将ImageView放在按钮的Z轴上,而不是y轴。
编辑2:
我不想使用图像按钮,图像只是按钮上的“引脚”,它将出现/消失。 我不想在按钮上使用drawable,我需要将它放在我想要的位置。 使用FrameLayout而不是RelativeLayout不会改变任何东西。 使用imgView.bringToFront()不起作用。
编辑3:
Lollipop之前设备上没有出现此问题。在KitKat上,布局按预期工作。
答案 0 :(得分:2)
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="80dp" >
<Button
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="7dp"
android:background="#0000FF"
android:gravity="center"
android:paddingBottom="25dp"
android:paddingTop="25dp"
android:text="Sort"
android:textColor="#FFFFFF" />
<ImageView
android:id="@+id/widget_title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:adjustViewBounds="true"
android:paddingTop="-10dp"
android:scaleType="fitStart"
android:src="@drawable/ic_launcher" />
</FrameLayout>
尝试一下,虽然我还没有测试过它。
答案 1 :(得分:0)
尝试
findViewById(R.id.img_bookmark).bringToFront();
答案 2 :(得分:0)
您需要在imageview下方设置按钮:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/background_white_clickable"
android:text="@string/book_now
android:id="@+id/but_book_now"
android:layout_below="@+id/img_bookmark"/>
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:id="@+id/img_bookmark"
android:src="@drawable/ic_action_bookmark_full"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
修改强>
我现在注意到你想要一个不在上面的按钮上的图像,所以不要关心上面的代码并使用ImageButton:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/background_white_clickable"
android:text="@string/book_now
android:id="@+id/but_book_now"
android:src="@drawable/ic_action_bookmark_full"/>
</RelativeLayout>
答案 3 :(得分:0)
示例代码:
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/img_bookmark"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:src="@drawable/ic_launcher" />
<Button
android:id="@+id/but_book_now"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/img_bookmark"
android:text="Test" />
</RelativeLayout>
注意:
根据您的需要编辑文本和src
答案 4 :(得分:0)
如果您想要带按钮的图像视图:
<Button
android:id="@+id/but_book_now"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_launcher"
android:background="#ff00ff"
android:text="This is button"
android:padding="10dp"
android:textColor="#ffff00"
/>
</RelativeLayout>
如果您想要没有按钮的图像视图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/but_book_now"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:text="This is button"
android:padding="10dp"
android:textColor="#ffff00"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ff00ff"
android:text="This is button"
android:padding="10dp"
android:textColor="#ffff00"
/>
</LinearLayout>
答案 5 :(得分:0)
您可以将RelativeLayout定义为Button并在其上添加ClickEvents,添加带有颜色的子视图或带有PNG的子ImageView,或任何或两者,以在其上放置图像或颜色。
实施例
<FrameLayout android:id="@+id/buttonTextFillColor"
android:layout_width="@dimen/mini_icon_width"
android:layout_height="@dimen/mini_icon_height"
android:background="@drawable/input_button_background"
android:clickable="true">
<View
android:id="@+id/colorTextFillColor"
android:layout_width="23dp"
android:layout_height="23dp"
android:background="#FFFFFF"
android:layout_gravity="center" />
<ImageView
android:layout_width="23dp"
android:layout_height="23dp"
android:src="@drawable/button_fill_text"
android:layout_gravity="center"/>
</FrameLayout>
你得到了一个元素联盟:
答案 6 :(得分:-3)
请为Button属性添加layout_below