Я пытаюсь создать кнопку с помощью селектора, моя кнопка может иметь следующие состояния:
- Включено выключено
- Нажат / не отжат
По состояниям, упомянутым выше. Мне нужно манипулировать кнопкой:
- Цвет текста
- изображение на заднем плане
Кнопка начинается с того, что я отключен, поэтому у нее должен быть отключенный textColor и отключенный фон кнопки. Но я вижу текстовый цвет по умолчанию (указанный в стиле) и НЕТ фонового изображения!
Вот мой селектор button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button" />
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed"/>
<item android:state_pressed="true"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button"/>
<item android:state_pressed="false"
android:state_enabled="true"
android:drawable="@drawable/button"/>
</selector>
А вот объявление моей кнопки в моем layout.xml
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
И, наконец, это мой стиль (где установлен текстовый цвет по умолчанию)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="buttonStyle">
<item name="android:textStyle">bold</item>
<item name="android:textColor">#282780</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
Пожалуйста помоги!
@color
в buttyStyle. Теперь его обновили.text_color.xml
не компилируется (для меня, по крайней мере), если я неdrawable
@drawable/text_color
color
это правильная папка для ресурса списка состояний цвета. Ваше редактирование приветствуется.1. Создайте папку цветов в папке / res / и в папке цветов создайте в xml:
text_color_selector.xml
2.Теперь создайте макет xml: -
источник
Самое простое решение - установить цветовой фильтр для фонового изображения и кнопки, как я видел здесь.
Вы можете сделать следующее:
Надеюсь, я кому-то помог ...
источник
Я не вижу нажатия вашей кнопки в вашем макете xml. добавьте это в макет вашей кнопки.
так что ваш макет кнопки будет,
источник
Вы можете создать список цветов
расположение файла:
Имя файла будет использоваться как идентификатор ресурса.
ссылка на ресурс:
В Java:
R.color.filename
В XML:
@[package:]color/filename
синтаксис:
Пример:
Файл XML сохранен по адресу
res/color/button_text.xml
:Этот XML-код макета применит список цветов к представлению:
См .: Справочник по списку цветов
источник