जब आप उपयोग करते हैं android:background, तो आप बहुत स्टाइल की जगह ले रहे हैं और एक खाली रंग के साथ एक बटन को देखो और महसूस करो।
अद्यतन: के रूप में संस्करण 23.0.0 रिलीज की AppCompat , वहाँ एक नया है Widget.AppCompat.Button.Coloredशैली जो अपने विषय के उपयोग करता colorButtonNormalविकलांग रंग के लिए और colorAccentसक्षम रंग के लिए।
इससे आप इसे सीधे अपने बटन पर लगा सकते हैं
<Button
...
style="@style/Widget.AppCompat.Button.Colored" />
यदि आपको एक कस्टम की आवश्यकता है colorButtonNormalया colorAccent, आप इस प्रो-टिप में और बटन पर ThemeOverlayबताए अनुसार उपयोग कर सकते हैं ।android:theme
पिछला उत्तर
आप अपनी पृष्ठभूमि के लिए अपने v21 निर्देशिका में एक drawable का उपयोग कर सकते हैं जैसे:
<?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>
यह सुनिश्चित करेगा कि आपका बैकग्राउंड कलर है ?attr/colorPrimaryऔर डिफॉल्ट का उपयोग करके डिफॉल्ट रिपल एनीमेशन है ?attr/colorControlHighlight(जिसे आप चाहें तो अपने थीम में भी सेट कर सकते हैं)।
नोट: आपको 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>
मान लें कि आपके पास डिफ़ॉल्ट, दबाए गए और केंद्रित स्थिति के लिए कुछ रंग हैं। व्यक्तिगत रूप से, मैंने चयनित होने के माध्यम से एक रिपल मिडवे का स्क्रीनशॉट लिया और उसमें से प्राथमिक / केंद्रित स्थिति को खींच लिया।