Saat Anda menggunakan android:background, Anda mengganti banyak gaya dan tampilan dan nuansa tombol dengan warna kosong.
Update: Sampai dengan rilis versi 23.0.0 dari appcompat , ada yang baru Widget.AppCompat.Button.Coloredgaya yang menggunakan tema Anda colorButtonNormaluntuk warna cacat dan colorAccentuntuk warna diaktifkan.
Ini memungkinkan Anda menerapkannya ke tombol Anda langsung melalui
<Button
...
style="@style/Widget.AppCompat.Button.Colored" />
Jika Anda memerlukan kustom colorButtonNormalatau colorAccent, Anda dapat menggunakan ThemeOverlayseperti yang dijelaskan dalam pro-tip ini dan android:themepada tombol.
Jawaban Sebelumnya
Anda dapat menggunakan drawable di direktori v21 Anda untuk latar belakang Anda seperti:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>
Ini akan memastikan warna latar belakang Anda ?attr/colorPrimarydan memiliki animasi riak default menggunakan default ?attr/colorControlHighlight(yang Anda juga dapat mengatur dalam tema Anda jika Anda mau).
Catatan: Anda harus membuat pemilih khusus kurang dari v21:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primaryPressed" android:state_pressed="true"/>
<item android:drawable="@color/primaryFocused" android:state_focused="true"/>
<item android:drawable="@color/primary"/>
</selector>
Dengan asumsi Anda memiliki beberapa warna yang Anda inginkan untuk keadaan default, ditekan, dan fokus. Secara pribadi, saya mengambil screenshot dari riak di tengah dipilih dan menarik negara / fokus utama dari itu.