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 代码,但我所看到的一切都说这应该起作用。

4

5 回答 5

2

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

于 2010-12-25T19:58:16.163 回答
2

确保将相同的图像和按钮 XML 复制到每个“可绘制”文件夹(hdpi、ldpi、mdpi)中。这就是我在我的应用程序上解决这个问题的方法。

祝你好运 :)

于 2011-02-06T01:56:52.653 回答
1

我有几乎相同的 XML,它工作得很好。您确定您没有在某处替换代码中的可绘制对象吗?

另一方面,您的 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>
于 2011-09-29T14:47:52.213 回答
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"/>
于 2012-10-12T11:28:35.610 回答
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>
于 2010-12-25T20:58:49.833 回答