Вместо того, чтобы просто менять цвет фона, рассмотрите возможность использования стиля с 9 патчами.Это еще работа, но у вас будет гораздо больше контроля над внешним видом вашего приложения.
Измените макет кнопки так, чтобы он выглядел примерно так (линия стиля - это кикер):
<Button
style="@style/PushButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Ваш файл ресурсов styles.xml должен содержать стиль, подобный следующему:
<style name="PushButton">
<item name="android:background">@drawable/btn</item>
</style>
Тогда содержимое btn.xml (вставленное в res / drawable) должно выглядеть примерно так:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/btn_focused"
android:state_pressed="false"
android:state_focused="true" />
<item android:drawable="@drawable/btn_default"
android:state_focused="false"
android:state_pressed="false" />
Затем можно использовать редактор изображений для создания файлов с именами btn_pressed.9.png, btn_focused.9.png и btn_default.9.png.Удалите эти файлы в свой res / drawable.
Хорошей отправной точкой является приложение Google IO (я взял из него примеры кода). Просто возьмите файлы png и измените их так, чтобы они соответствовали желаемому стилю .
Имейте в виду, что теперь вы можете добавлять в стиль все виды вещей, такие как размер текста, высота и ширина.