Android ImageButton状态未改变

5

我遇到了ImageButton状态不变的问题。当我点击或触摸该按钮时,它仍然保持相同的图像。以下是我使用作为选择器的XML。

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
 android:state_focused="true"
 android:state_pressed="false"
 android:drawable="@drawable/pushed" />
<item
 android:state_focused="true"
 android:state_pressed="true"
 android:drawable="@drawable/pushed" />
<item
 android:state_focused="false"
 android:state_pressed="true"
 android:drawable="@drawable/pushed" />
<item  
 android:drawable="@drawable/default" />
</selector>

我从我的main.xml中调用这个选择器,如下:

android:background="@drawable/imagechoice"

imagechoice.xml是选择器文件。

我不明白为什么这不起作用,除非我需要一些Java代码,但我看到的所有内容都说这应该可以工作。


你解决了这个问题吗?我有同样未解决的问题 https://dev59.com/-njZa4cB1Zd3GeqPZxik - sagus_helgy
5个回答

2
当使用ImageButton时,应该使用'src'属性而不是背景吗?

嗯,'src' 属性会在图像周围放置一个边框,但这也不起作用。 - Doug Goldberg

2
请确保将相同的图像和按钮XML复制到每个“drawable”文件夹(hdpi,ldpi,mdpi)中。这就是我在我的应用程序中解决此问题的方式。祝你好运 :)

1

我有一个几乎相同的XML文件,它可以正常工作,你确定你没有在代码中替换drawable吗?

另外,你的XML可以通过使用状态匹配的级联特性来简化。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/pushed"
          />
    <item android:state_focused="true"
          android:drawable="@drawable/pushed"
          />
    <item android:drawable="@drawable/default"
          />
</selector>

0
我的xml代码里有一个带有自定义图像的按钮,它运行得很好。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/btn_off" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
<item android:drawable="@drawable/btn_off" />
</selector>

你是否使用像Eclipse这样的IDE?也许可以清理项目以确保R文件刷新并且再次检查艺术是否正确。我不太确定为什么你的代码不起作用。 - justinl
我正在使用Eclipse,我会尝试使用R文件完成。谢谢。 - Doug Goldberg

0
请确保您将图像按钮背景设置为下面所述。我认为您没有将选择器设置为背景,而是将图像设置为背景。
 <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/button_up_selector"
        android:text="1"
        android:textColor="#fffafa"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="5dp"/>

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