android statelistdrawable для уменьшения размера кнопки, а затем возврата к исходному размеру

Я пытаюсь использовать свой XML-файл, чтобы добавить кнопку для рисования, чтобы она давала эффект отскока. Размер покоя должен быть 1х1. Когда вы нажимаете на него, он должен перейти от 1 до 0,75, а затем обратно от 0,75 до 1, чтобы он выглядел как отскок.

Я хочу, чтобы состояние по умолчанию было в основном ничем (другой код заставляет состояние по умолчанию срабатывать, и отскок будет происходить, когда я этого не хочу).

Итак, мне нужно 3 государства. 1 для нажатия, 1 для возврата к значению по умолчанию и один для значения по умолчанию.

Есть ли какое-либо другое состояние, которое я могу использовать, чтобы кнопка становилась меньше, а затем снова увеличивалась в виде отскока без использования значения по умолчанию?

коды

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item> <!-- default state -->
        <set android:ordering="together">
            <objectAnimator
                android:duration="75"
                android:propertyName="scaleX"
                android:valueFrom="1"
                android:valueTo="1"
                android:valueType="floatType" />
            <objectAnimator
                android:duration="75"
                android:propertyName="scaleY"
                android:valueFrom="1"
                android:valueTo="1"
                android:valueType="floatType" />
        </set>
    </item>

    <item android:state_pressed="true"> <!-- pressed state -->
        <set android:ordering="together">
            <objectAnimator
                android:duration="75"
                android:propertyName="scaleX"
                android:valueFrom="1"
                android:valueTo="0.25"
                android:valueType="floatType" />
            <objectAnimator
                android:duration="75"
                android:propertyName="scaleY"
                android:valueFrom="1"
                android:valueTo="0.25"
                android:valueType="floatType" />
        </set>

    </item>

    <item android:state_selected="true"> <!-- selected state -->
        <set android:ordering="together">
            <objectAnimator
                android:duration="75"
                android:propertyName="scaleX"
                android:valueFrom="0.25"
                android:valueTo="1"
                android:valueType="floatType" />
            <objectAnimator
                android:duration="75"
                android:propertyName="scaleY"
                android:valueFrom="0.25"
                android:valueTo="1"
                android:valueType="floatType" />
        </set>
    </item>
</selector>

1 ответ

Используйте эти состояния для состояния по умолчанию:

<item
    android:state_pressed="false"
    android:state_focused="false"
    android:state_selected="false"
    ...>
Другие вопросы по тегам