Использовать конфигурацию xml в папке drawable. Вместо ссылки на изображение в качестве фона для вашей кнопки, вы ссылаетесь на эту конфигурацию xml (имя файла):
Например: my_button.xml
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/button_style1_active" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/button_style1_down" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/button_style1_down" />
<item
android:drawable="@drawable/button_style1_up" />
</selector>
Использовать в layout.xml:
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tap me"
android:background="@drawable/my_button"/>
С помощью этой конфигурации вы можете влиять на внешний вид кнопки, когда она нажата, сфокусирована и так далее. Это одинаково для обоих типов кнопок (Button и ImageButton). Если ваша кнопка не содержит текста, используйте ImageButton.