android statelistdrawable导致按钮缩小然后返回到原始大小

时间:2017-04-17 23:26:08

标签: android xml bounce statelistdrawable

我正在尝试使用我的xml文件将一个drawable添加到一个按钮,以便它给出弹跳效果。它的休息状态大小应为1x1。当你点击它时,它应该从1到0.75,然后从0.75回到1,这样看起来像是反弹。

我希望默认状态基本上没有(其他代码会导致默认状态被触发,弹跳将在我不想要的时候发生)。

所以,我需要3个州。 1表示按下,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 个答案:

答案 0 :(得分:1)

将这些状态用于默认状态:

<item
    android:state_pressed="false"
    android:state_focused="false"
    android:state_selected="false"
    ...>