А какой эффект интересует, именно анимация, или смена цвета, бордера, смена размера шрифта?
Тогда это можно сделать стилями.
Например красная кнопка
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#ef4444" />
<stroke
android:width="1dp"
android:color="#992f2f" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#ef4444"
android:endColor="#992f2f"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#992f2f" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
Обратите внимание на
android:state_pressed="true"
означает когда кнопка например нажата, это разные состояния, подробней можете прочитать
тут
таких состояний довольно много - например
android:state_focused
Так можно поменять полностью дизайн кнопки
Цепляете потом этот стиль к кнопке в layout
<Button
android:id="@+id/btnCansel"
style="@style/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/custom_red_button"
android:onClick="onClickCanselButton"
android:text="@string/clear" />
Обратите внимание на
android:background="@drawable/custom_red_button"
тут цепляется стиль с описанием разных состояний к кнопке.