Java 按钮顶部的图像视图
我试图把一个小的图像视图放在一个按钮的顶部,但不知怎么的,它一直在它下面。我不明白为什么,因为这种布局与其他视图配合得很好Java 按钮顶部的图像视图,java,android,android-layout,Java,Android,Android Layout,我试图把一个小的图像视图放在一个按钮的顶部,但不知怎么的,它一直在它下面。我不明白为什么,因为这种布局与其他视图配合得很好 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="match_
<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:
我不想使用图像按钮,图像只是按钮上会出现/消失的“pin”。
我不想在按钮上使用绘图工具,我需要把它放在我想要的地方。
使用FrameLayout而不是RelativeLayout不会改变任何东西。
使用imgView.bringToFront()不起作用
编辑3:
在棒棒糖出现之前,这个问题不会出现在设备上。在KitKat上,布局按预期工作。试试看
findViewById(R.id.img_bookmark).bringToFront();
请在下面添加按钮属性的布局。\u您需要在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>
示例代码:
<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
<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>
试试看,虽然我还没有测试过。如果您想使用按钮查看图像:
<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>
如果要查看不带按钮的图像:
<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>
您可以将RelativeLayout定义为一个按钮,并在其上添加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>
您将获得元素的并集:
您需要将图像放在按钮顶部?您尝试过ImageButton吗?如果您想在按钮上显示图像,ImageButton可能是一个更好的主意。无论如何,在相对布局中,z顺序是按文件中视图的顺序完成的。因此,如果图像是第二次定义的,它应该绘制在按钮的顶部。我们可能很难准确理解您想要什么,您拥有和想要什么的图片将是一个好主意。@阴影是的,在顶部按z顺序,而不是y轴。找到解决方法。将ImageView的高程设置为1dp。看看这个。威德。尝试
findviewbyd(R.id.img_书签).invalidate()如果这也无助于使RelativeLayout无效,请在bringToFront()
之后添加code>。您能否添加有关所提供解决方案的更多详细信息?