Это кнопочный селектор, такой, что в нормальном состоянии он отображается красным, при нажатии - серым.
Я хотел бы спросить, как можно было бы напрямую изменить код, чтобы при НАЖАТИИ размер и цвет текста также могли измениться? Большое спасибо!
<item android:state_pressed="true" >
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/black" />
<solid android:color="@color/grey"/>
<padding android:left="5dp" android:top="2dp"
android:right="5dp" android:bottom="2dp" />
<corners android:radius="5dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/black" />
<solid android:color="#FF6699"/>
<padding android:left="5dp" android:top="2dp"
android:right="5dp" android:bottom="2dp" />
<corners android:radius="5dp" />
</shape>
</item>
Вы не можете добиться изменения размера текста с помощью вытягиваемого списка состояний . Чтобы изменить цвет и размер текста, сделайте следующее:
Цвет текста
Чтобы изменить цвет текста, вы можете создать ресурс списка состояний цвета . Это будет отдельный ресурс, расположенный в
res/color/
каталоге. В макете xml вы должны установить его как значение дляandroid:textColor
атрибута. Селектор цвета будет содержать что-то вроде этого:Размер текста
Вы не можете изменить размер текста просто с помощью ресурсов. Нет никакого "селектора размера". Вы должны сделать это в коде. И нет однозначного решения.
Вероятно, самым простым решением могло бы быть использование
View.onTouchListener()
и обработка событий увеличения и уменьшения соответственно. Используйте что-то вроде этого:Другим решением может быть расширение представления и переопределение
setPressed(Boolean)
метода. Метод вызывается изнутри, когда происходит изменение нажатого состояния. Затем измените размер текста соответствующим образом в вызове метода (не забудьте вызвать super).источник
Создайте custom_selector.xml в папке с возможностью переноса.
Создать форму selected.xml в папке с возможностью рисования
Создать форму unselected.xml в папке с возможностью переноса
Добавьте следующие цвета для выбранного / невыделенного состояния в папке color.xml значений
вы можете проверить полное решение здесь
источник
Лучший способ реализовать селектор - использовать xml вместо использования программного способа, поскольку его проще реализовать с помощью xml.
Для получения дополнительной информации я использовал эту ссылку http://www.blazin.in/2016/03/how-to-use-selectors-for-botton.html
источник
В файле макета .xml
btn_selector.xml
источник
Вы можете использовать этот код:
(Файл выбора) img_sublist_carat_selector.xml:
источник