Android statelistable可导致按钮收缩,然后返回原始尺寸



我正在尝试使用我的XML文件添加可绘制的按钮,以使其产生弹跳影响。静止状态的大小应为1x1。单击它时,它应该从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>

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

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

相关内容

  • 没有找到相关文章

最新更新