Добавить свечение к кнопке, когда изображение установлено в качестве фона

#android #image #button

#Android #изображение #кнопка

Вопрос:

Обычно кнопка при нажатии заливается оранжевым цветом. Когда я устанавливаю какое-либо изображение в качестве фона кнопки, при нажатии не выполняется никаких действий. Я бы хотел добавить немного свечения при нажатии кнопки.

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

1. я опубликую некоторый код, когда установлю sdk на этот компьютер, но вы должны иметь возможность вручную изменять фоновое изображение для разных состояний в прослушивателе onClick

Ответ №1:

Используйте StateListDrawable. Введите это в файл и сохраните как res/drawable/button_bg.xml. Затем создайте 4 изображения (button_press.png, button_focus.png, button_disabled.png и button.png) и в последнюю очередь установите значение фона button_bg .

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_press" android:state_pressed="true" />
    <item android:drawable="@drawable/button_focus" android:state_focused="true" />
    <item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
    <item android:drawable="@drawable/button" />
</selector>
  

«Волшебство» этого заключается в том, что Android будет перемещаться сверху вниз и использовать первое, соответствующее состоянию ваших кнопок.

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

1. согласно вашему коду, мне нужен отдельный button_bg для каждой кнопки?

2. Нет, думайте об этом как об изображении (оно доступно для рисования, как и любое другое изображение), которое вы можете использовать, когда захотите.

3. У меня есть 6 кнопок в моем lauout, для каждой из них установлено изображение в качестве фона. Если я установлю button_bg в качестве фона, оно заменит изображение.