Android: как программно переключить нажатое состояние кнопки?

#android #button #android-drawable

#Android #кнопка #android-drawable

Вопрос:

У меня есть кнопка с 2 различными изображениями для нажатого и отпущенного состояния. Как мне переключить состояние программно?

Ответ №1:

Ответ №2:

это можно сделать, используя настраиваемый фоновый рисунок внутри нашего 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
 

Комментарии:

1. Я думаю, вам следует использовать: «android: state_activated» вместо этого. «android: state_selected» больше подходит для навигации по D-pad.