我的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代码,但我见过的所有内容都应该有效。
答案 0 :(得分:2)
使用ImageButton时,是不是你应该使用的'src'属性而不是背景?
答案 1 :(得分:2)
确保将相同的图像和按钮XML复制到每个“可绘制”文件夹(hdpi,ldpi,mdpi)中。 这就是我在我的应用程序上解决这个问题的方法。
祝你好运:)答案 2 :(得分: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>
答案 3 :(得分: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>
答案 4 :(得分: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"/>