我正在尝试使用我的 xml 文件向按钮添加可绘制对象,以便它产生反弹效果。它的静止状态大小应该是 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>