为什么我的ImageView元素与我的Button混合在一起?

时间:2012-10-14 00:10:34

标签: android xml button imageview opacity

我是新手,请原谅我。我一直试着搜索文档和互联网,我只是想不出来。这是我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000" >

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:contentDescription="@string/desc"
        android:src="@drawable/my_image" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/hello_world"/>
</RelativeLayout>

看起来像这样:

screenshot

我只是希望按钮完全不透明,并且看不到背景图像与按钮混合。换句话说,我希望图像在背景中,按钮在其上方稳固显示。我玩了两个元素的alpha设置,但无法弄明白。感谢。

3 个答案:

答案 0 :(得分:1)

尝试使用android:background将Button的背景颜色更改为您想要的任何颜色。例如,使用红色android:background = "#ff0000"

答案 1 :(得分:0)

您正在使用Relative Layout (clicky)。它是功能强大的小部件容器,但您需要小心。

对于您指定layout_centerInParent=true的按钮,布局管理器执行此操作 - 它会将您的按钮设置在容器的中心(可能是整个屏幕)

默认情况下,在相对布局中,所有子视图都在布局的左上角绘制,这就是它在那里绘制ImageView的原因,您还将layout_widthlayout_height设置为fill_parent它就是这样,填满整个容器。

如果你想定位(例如在ImageView下面)你需要这样说: Button属性中的android:layout_below="@id/ImageView_ID"

答案 2 :(得分:0)

如果您不想更改按钮的颜色,则提供的答案是不够的。相反,将按钮放在另一个黑色背景的布局中。 E.g:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="@android:color/black" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"/>

</LinearLayout>