按钮背景选择器

7
我尝试在按钮被按下时切换它们的背景。我建立了一个选择器,就像这里所建议的一样: 标准 Android 按钮,不同的颜色
最后,我想把 GradientDrawables 放进去,但出于调试目的,我只设置了一个颜色来检查它是否起作用。这是我的选择器。
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:drawable="@color/red"/>
  <item 
    android:state_focused="true"
    android:drawable="@color/white"/>
   <item 
    android:state_pressed="true"
    android:drawable="@color/white"/>
</selector>

不幸的是,这并不起作用。我将选择器设置为按钮背景,但只能看到红色。我做错了什么(构建目标2.1)

2个回答

20

将此放置在结尾

项android:drawable="@color/red"

我的意思是作为第三个选项,这样会起作用。 Android从开头检查XML条件,第一个标签没有任何条件,因此它总是选择红色,所以您需要先放置条件,然后再放置默认的条件。


这个不行,因为现在它们一直是白色的。 - Rafael T
我不这么认为。我有两个按钮,它们都是白色的,点击后没有任何变化。 - Rafael T
哦,我的天啊...非常感谢...现在它可以工作了:Eclipse只是想愚弄我。我重新启动了Eclipse,然后它就可以工作了。我只需要将“空”项目选择器放在最后一个元素即可... - Rafael T
如果您看到选择器,当您单击按钮时,背景会变为白色。因此,显然当您单击按钮时,您会看到白色。 - Yashwanth Kumar
这让我的一天变得开心。 - CoderSpinoza
显示剩余3条评论

1
这是我使用的代码,它非常有效。
 <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_clicked"
        android:state_pressed="true" android:state_enabled="true" />

    <item android:drawable="@drawable/button" android:state_enabled="true" />
    </selector>

在这里,我使用了两张我用 Photoshop 制作的图片作为背景。

第一张是 button_clicked,第二张是 button

复制它并更改为您自己的资源。

希望能够帮到您 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接