Создавать Окрашенную кнопку с Материалом Design в Android

Как создается высокая кнопка Raised и колорит, не теряя эффекта Ripple?

introducir la descripción de la imagen aquí

А именно, если я распределяю цвет фона в кнопку, автоматически потеряй волнистый эффект, когда он нажимается, кроме того я думаю, что он не получает в наследство пропорции материала design, это мне кажется высоким высоты.

Версия 23.0.0 из AppCompat, есть новая вещь, виден в этом вводе SO

Но если я это добавляю, он не затрагивает результат.

0
задан 23.05.2017, 15:39
2 ответа

1 Объявляет, Что твои стили в файле styles.xml

<style name="MyButton" parent="Theme.AppCompat.Light">
     <item name="colorControlHighlight">@color/indigo</item>
     <item name="colorButtonNormal">@color/pink</item>
</style>

2 Добавляет, Что стиль в твой BotГіn путь android:theme attribute

<Button android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"**
    android:theme="@style/MyButton"/>

ты Можешь проверять персонализированных Кнопок

2
ответ дан 24.11.2019, 12:59

Реализованные доказательства исходя из базового проекта android-studio

Уезжая styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

Различные формы, чтобы определять кнопки в материале design

Нормальный:

<Button
    style="@style/Widget.AppCompat.Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="normal" />

Другой способ, используя определение в style.xml

<style name="AppTheme.RaisedButton">
    <item name="buttonStyle">@style/Widget.AppCompat.Button</item>
</style>

С цветом полученного фона ColorAccent, определенным в тему

<Button
    style="@style/Widget.AppCompat.Button.Colored"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="accent" />

Другой способ, используя определение в style.xml

<style name="AppTheme.RaisedButton">
    <item name="buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
</style>

Кнопка с различным цветом фона

<style name="AppTheme.MyButtonRed">
    <item name="colorButtonNormal">#FF0000</item>
</style>

Больше personalización Другой элементы, которые могут настраиваться

  • Цвет фона: colorButtonNormal
  • Цвет текста: android:textColor
  • Цвет эффекта ripple: colorControlHighlight

Пример

<style name="AppTheme.CustomButton">
    <item name="colorButtonNormal">#FF0000</item>
    <item name="android:textColor">@android:color/white</item>
    <item name="colorControlHighlight">@android:color/holo_orange_light</item>
</style>

Чтобы распределять стили в кнопке:

<Button
    ...
    android:theme="@style/AppTheme.CustomButton" />

Если мы хотим один botón raised с цветом фона ColorAccent и белый текст, не используя стилей, видный в Медиуме.

<Button
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Raised"
        android:textAppearance="@style/TextAppearance.AppCompat.Button"
        android:textColor="@android:color/white" />
0
ответ дан 24.11.2019, 12:59

Теги

Похожие вопросы