Try this. It won't quite change your padding, but it will scale the image up a little and then back (or reverse it to 0.9 and 1.0 to scale it down and back). I think this is kind of what you're looking for.
Use an selector under animator resources:
<!-- 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>
You can have 0 duration for jumping straight to the value or put a duration in there.
Then to use it set android:stateListAnimator
on your view:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_drawable"
android:stateListAnimator="@animator/image_button_pressed"/>
You can also add another objectAnimator to the set to alter translationZ to make it rise on press (as per material guidelines)