как изменить цвет кнопки, когда она нажата в Android - PullRequest
1 голос
/ 20 апреля 2011

По умолчанию при нажатии кнопки что-то вроде оранжевого цвета будет окружать кнопку в течение короткого времени, что указывает на нажатие кнопки.Но эта функция не работает, когда кнопка содержит фоновое изображение.Это происходит в виде списка тоже. Почему?Есть идеи?TIA
Я использовал setBackgroundColor (Color.BLUE); Но здесь цвет применяется и не пропал ...

Ответы [ 3 ]

5 голосов
/ 20 апреля 2011

Вам необходимо использовать селектор в качестве фонового ресурса:

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

В этом селекторе для изменения изображения кнопки используются 3 отдельных рисунка, вы можете использовать одно и то же изображение для нажатия и фокусировки.

Вам нужно поместить этот XML в каталог drawables и использовать его в качестве фона для вашей кнопки.

Для другого решения обратитесь: Стандартная кнопка Android с другим цветом

1 голос
/ 20 апреля 2011

У меня тоже была такая же проблема.поэтому вместо установки цвета фона я включил три изображения кнопки в трех разных цветах, поэтому на основе состояния, сфокусированного, нажатого, по умолчанию соответствующее изображение заменит другое.и выглядит как изменение цвета кнопки.

**<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/c2"
          android:state_pressed="true" />
    <item android:drawable="@drawable/c1"
          android:state_focused="true" />
    <item android:drawable="@drawable/c1" />
</selector>**

выше - содержимое файла xml, который должен быть назначен фону соответствующей кнопки android: background = "@drawable / drawable_button

надеюсь, что это может быть полезно для вас

0 голосов
/ 20 апреля 2011

Проверьте эту ссылку. Вы можете изменить этот оранжевый цвет на красный ... или любой другой. Эта ссылкаэто

::::

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...