我有一个按钮,有两个不同的图片,用于按下和释放状态。如何以编程方式切换状态?
答案 0 :(得分:31)
答案 1 :(得分:0)
这可以通过在我们的 ImageButton 中使用自定义可绘制背景来完成
buttonSelector.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed" android:state_selected="true"/>
<item android:drawable="@drawable/button_pressed" android:state_focused="true" />
<item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
<item android:drawable="@drawable/button_default" />
将此@drawable/buttonSelector.xml 代码放在您的图像按钮 xml 代码的背景中
<ImageButton
android:id="@+id/demoBtn"
android:background="@drawable/buttonSelector"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/btndefaultImage"/>
在您的 Mainactivity 中,您可以使用以下行将按钮状态设置为按下或默认状态
demoBtn.setSelected(true);//used to maintain button as selected/pressed
demoBtn.setSelected(false);//used to maintain button as unseleced/default