Состояние Android ImageButton не меняется - PullRequest
4 голосов
/ 25 декабря 2010

У меня проблема с моим 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, но все, что я видел, говорит, что это должно работать.

Ответы [ 5 ]

2 голосов
/ 06 февраля 2011

Убедитесь, что вы копируете одинаковые изображения и кнопку XML в каждую «нарисованную» папку (hdpi, ldpi, mdpi).Вот как я решил эту проблему в своем приложении.

Удачи:)

2 голосов
/ 25 декабря 2010

При использовании ImageButton, разве это не свойство 'src', которое вы должны использовать, а не background?

1 голос
/ 29 сентября 2011

У меня почти тот же 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 голосов
/ 12 октября 2012

Убедитесь, что вы установили фон кнопки «Изображение», как указано ниже. Я думаю, что вы не устанавливаете селектор в качестве фона, вместо этого вы устанавливаете изображение в качестве фона.

0 голосов
/ 25 декабря 2010

Это мой 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>
...