J'ajouterai ma réponse car je n'utilise aucune des autres réponses fournies.
Avec la bibliothèque de support v7, tous les styles sont en fait déjà définis et prêts à l'emploi, pour les boutons standard, tous ces styles sont disponibles:
style="@style/Widget.AppCompat.Button"
style="@style/Widget.AppCompat.Button.Colored"
style="@style/Widget.AppCompat.Button.Borderless"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
Widget.AppCompat.Button
:
Widget.AppCompat.Button.Colored
:
Widget.AppCompat.Button.Borderless
Widget.AppCompat.Button.Borderless.Colored
:
Pour répondre à la question, le style à utiliser est donc
<Button style="@style/Widget.AppCompat.Button.Colored"
.......
.......
.......
android:text="Button"/>
Comment changer la couleur
Pour l'ensemble de l'application:
La couleur de tous les contrôles de l'interface utilisateur (non seulement les boutons, mais aussi les boutons d'action flottants, les cases à cocher, etc.) est gérée par l'attribut colorAccent
comme expliqué ici . Vous pouvez modifier ce style et appliquer votre propre couleur dans la définition de votre thème:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorAccent">@color/Orange</item>
</style>
Pour un bouton spécifique:
Si vous devez modifier le style d'un bouton spécifique, vous pouvez définir un nouveau style, héritant de l'un des styles parents décrits ci-dessus. Dans l'exemple ci-dessous, je viens de changer les couleurs d'arrière-plan et de police:
<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>
Il vous suffit ensuite d'appliquer ce nouveau style sur le bouton avec:
android:theme="@style/AppTheme.Button"
Pour définir une conception de bouton par défaut dans une mise en page, ajoutez cette ligne au thème styles.xml:
<item name="buttonStyle">@style/btn</item>
où @style/btn
est votre thème de bouton. Cela définit le style de bouton pour tous les boutons d'une mise en page avec un thème spécifique