Кнопка Выбора Фона


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

Наконец, я хочу поместить GradientDrawables внутрь, но для отладки я хочу только установить цвет, чтобы увидеть, что он работает. Вот мой селектор

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:drawable="@color/red"/>
  <item 
    android:state_focused="true"
    android:drawable="@color/white"/>
   <item 
    android:state_pressed="true"
    android:drawable="@color/white"/>
</selector>

К сожалению, это не работает. Я устанавливаю селектор в качестве фона от моей кнопки, и вижу их только в красном цвете. Что я делаю не так (построить Задача 2.1)

2 6

2 ответа:

Поставьте это в конце

Элемент android: drawable= "@color / red "

Я имею в виду, как третий вариант, он будет работать. android проверяет условия xml с самого начала, первый тег не имеет никакого условия, поэтому он всегда будет выбирать красный, поэтому вы сначала ставите условия, а затем-по умолчанию.

Вот код, который я использую, и он работает очень хорошо.

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

    <item android:drawable="@drawable/button" android:state_enabled="true" />
    </selector>

Здесь я использую два изображения, которые я сделал с помощью photoshop в качестве фона

Первый button_clicked и вторая кнопка

Скопируйте его и измените, используя свои собственные ресурсы.

Надеюсь, я смогу помочь :)