Я додам свою відповідь, оскільки не використовую жодної з інших наданих відповідей.
З бібліотекою підтримки v7 всі стилі фактично вже визначені та готові до використання, для стандартних кнопок доступні всі ці стилі:
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
:
Щоб відповісти на питання, тому стиль, який слід використовувати
<Button style="@style/Widget.AppCompat.Button.Colored"
.......
.......
.......
android:text="Button"/>
Як змінити колір
Для всього додатка:
Колір усіх елементів управління інтерфейсом (не тільки кнопок, але і плаваючих кнопок дій, прапорців тощо) керується атрибутом, colorAccent
як пояснено тут . Ви можете змінити цей стиль і застосувати свій власний колір у визначенні теми:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorAccent">@color/Orange</item>
</style>
Для конкретної кнопки:
Якщо вам потрібно змінити стиль певної кнопки, ви можете визначити новий стиль, успадкувавши один із описаних вище батьківських стилів. У наведеному нижче прикладі я просто змінив кольори тла та шрифту:
<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>
Тоді вам просто потрібно застосувати цей новий стиль на кнопку за допомогою:
android:theme="@style/AppTheme.Button"
Щоб встановити дизайн макета за замовчуванням у макеті, додайте цей рядок до теми styles.xml:
<item name="buttonStyle">@style/btn</item>
де @style/btn
ваша тема кнопки. Це встановлює стиль кнопки для всіх кнопок у макеті з певною темою