В отличие от обычного Button
, ImageButton
или Button
с фоном изображения не отключаются серым цветом при отключении. Вам действительно нужно использовать другое изображение или обработать его так, чтобы оно выглядело серым.
Если с другим изображением все в порядке, вы можете сделать это с помощью <selector>
(здесь это связано с обычным Button
, но это относится к тому же):
/drawable/my_selector.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:drawable="@drawable/button_gray" /> ***button_gray is a Drawable image***
<item android:state_pressed="true"
android:drawable="@drawable/button_gray" />
<item android:drawable="@drawable/button_red" /> ***button_red is a Drawable image***
</selector>
Обратите внимание, что в селекторе логика применяет последовательный способ, элемент на элемент. Здесь button_red
используется все время, но когда кнопка отключена или нажата.
И если использование другого изображения будет проблемой, другие ответы (например, @ Tronman's или @ southerton's) дают вам возможность программно обработать изображение так, чтобы оно выглядело серым.