Adicionarei minha resposta, já que não uso nenhuma das outras respostas fornecidas.
Com a Biblioteca de suporte v7, todos os estilos já estão definidos e prontos para uso, para os botões padrão, todos esses estilos estão disponíveis:
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
:
Para responder à pergunta, o estilo a ser usado é, portanto,
<Button style="@style/Widget.AppCompat.Button.Colored"
.......
.......
.......
android:text="Button"/>
Como mudar a cor
Para todo o aplicativo:
A cor de todos os controles da interface do usuário (não apenas botões, mas também botões de ação flutuantes, caixas de seleção etc.) é gerenciada pelo atributo, colorAccent
conforme explicado aqui . Você pode modificar esse estilo e aplicar sua própria cor na definição do seu tema:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorAccent">@color/Orange</item>
</style>
Para um botão específico:
Se você precisar alterar o estilo de um botão específico, poderá definir um novo estilo, herdando um dos estilos principais descritos acima. No exemplo abaixo, mudei as cores de fundo e de fonte:
<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>
Então você só precisa aplicar esse novo estilo no botão com:
android:theme="@style/AppTheme.Button"
Para definir um design de botão padrão em um layout, inclua esta linha no tema styles.xml:
<item name="buttonStyle">@style/btn</item>
onde @style/btn
está o seu tema de botão. Isso define o estilo do botão para todos os botões em um layout com um tema específico