Изменить оттенок drawable в селекторе xml

У меня есть кнопка с фоном, определенным в 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. Спасибо.

20
задан coder 27 February 2012 в 21:49
поделиться