У меня есть кнопка с фоном, определенным в xml. Я хотел бы подкрасить кнопку в зависимости от текущего состояния, в котором она находится, то есть - нажата, сфокусирована, нормально.
Вот мой XML-файл ниже. Кроме того, мои color_tint_dark
и color_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. Спасибо.