У меня есть кнопка с фоном, определенным в xml. Я хотел бы поправить кнопку, основанную на текущем состоянии, в котором она находится, т.е. нажата, сфокусирована, нормальна.
Вот мой xml файл ниже. Кроме того, мои colored_tint_dark
и colored_tint
- это полупрозрачные цвета, которые я пытаюсь нарисовать над возвращаемым изображением, которое я вызываю из папки ресурсов. Вот проблема. Когда пользовательский интерфейс сначала загружается, изображение имеет соответствующий оттенок, но после нажатия, нажатое состояние не показывает никакого оттенка, тогда нормальное состояние не будет показывать никакого оттенка.
<?xml version="1.0" encoding="utf-8"?>
<item android:state_pressed="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button">
<shape>
<gradient
android:endColor="@color/colored_tint"
android:startColor="@color/colored_tint"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/colored_tint" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button">
<shape>
<gradient
android:endColor="@color/colored_tint"
android:startColor="@color/colored_tint"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/colored_tint" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:drawable="@drawable/rounded_grayscale_pinstripe_button">
<shape>
<gradient
android:endColor="@color/colored_tint_dark"
android:startColor="@color/colored_tint_dark"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/colored_tint_dark" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
Я знаю, что в java есть решения, но я специально ищу решение в xml. Спасибо.