试试这个。它不会完全改变你的填充,但它会将图像放大一点,然后再缩小(或者将其反转为0.9和1.0以缩小和缩小)。我想这就是你想要的。
使用“动画制作资源”下的选择器:
<!-- res/animator/image_button_pressed.xml -->
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<set>
<objectAnimator
android:duration="100"
android:propertyName="scaleX"
android:valueTo="1.1"
android:valueType="floatType"/>
<objectAnimator
android:duration="100"
android:propertyName="scaleY"
android:valueTo="1.1"
android:valueType="floatType"/>
</set>
</item>
<item android:state_focused="false">
<set>
<objectAnimator
android:duration="100"
android:propertyName="scaleX"
android:valueTo="1.0"
android:valueType="floatType"/>
<objectAnimator
android:duration="100"
android:propertyName="scaleY"
android:valueTo="1.0"
android:valueType="floatType"/>
</set>
</item>
</selector>
您可以有0持续时间直接跳到该值或在那里输入一个持续时间。
然后使用它设置
android:stateListAnimator
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_drawable"
android:stateListAnimator="@animator/image_button_pressed"/>
也可以将另一个objectAnimator添加到集合中以更改translationZ,使其在按下时上升(根据材质准则)