Дополнительно
Стили кнопок для Android Material Design
Я запутался в стилях кнопок для Material Design. Я хотел бы получить разноцветные рельефные кнопки, как в прикрепленной ссылке. как кнопки "принудительной остановки" и "удаления", которые можно увидеть в разделе использования. Существуют ли доступные стили или мне нужно определить их?
http://www.google.com/design/spec/components/buttons.html#buttons-usage
Я не смог найти стили кнопок по умолчанию.
Пример:
<Button style="@style/PrimaryButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate"
android:id="@+id/button3"
android:layout_below="@+id/editText5"
android:layout_alignEnd="@+id/editText5"
android:enabled="true" />
Если я попытаюсь изменить цвет фона кнопки, добавив
android:background="@color/primary"
все стили исчезают, например, анимация прикосновения, тень, закругленный угол и т.д.
293
11
Я добавлю мой ответ, так как я Дон'т использовать любые другие ответы.
С библиотекой поддержки В7, все стили уже определены и готовы к использованию, для стандартных кнопок, все эти стили доступны:
Виджетов.Совместимости приложений.Кнопка`:
Виджетов.Совместимости приложений.Кнопки.Цвета:
Виджетов.Совместимости приложений.Кнопки.Без границ`
Виджетов.Совместимости приложений.Кнопки.Без границ.Цвета:
Чтобы ответить на вопрос, поэтому стиль использовать
Как изменить цвет
Приложения:
Цвета всех элементов управления пользовательского интерфейса (не только кнопки, но и плавающие кнопки, чекбоксы и т. д.) управляется colorAccent атрибут `` как объяснил здесь. Вы можете изменить этот стиль и применить ваши собственные цвета в определении темы:
Для конкретной кнопки:
Если вам нужно изменить стиль конкретную кнопку, можно определить новый стиль, наследование одним из родителей, описанных выше стилей. В примере ниже я просто изменил цвет фона и шрифта:
Тогда вам просто нужно применить этот новый стиль на кнопку с:
Установить дизайн кнопки по умолчанию в макете, добавьте в тему styles.xml :
где `@стиль/БТН-это ваши темы. Это задает стиль кнопки для всех кнопок в макете с определенной темой
Простое Решение
Шаг 1: Используйте новейшие библиотеки поддержки
Шаг 2: Используйте AppCompatActivity как родительский класс Activity
Шаг 3: Используйте приложение пространства имен в макете XML-файл
Шаг 4: Используйте AppCompatButton кнопку вместо
Если я правильно вас понял, вы хотите сделать что-то вроде этого:
В таком случае этого должно быть достаточно для использования:
Или для API меньше 21:
В дополнение к Учебнику по использованию темы Material.
Анимированный вариант находится [здесь][3].
Вот как я получил то, что хотел.
Сначала я сделал кнопку (в
styles.xml
):Пульсация и фон для кнопки, как рисуемый
primary_round.xml
:Это добавило эффект пульсации, который я искал.
Добавить зависимость в сборке.Gradle в`:
Затем добавить
MaterialButton
по вашему макету:Вы можете проверить полная документация здесь и по API здесь.
Изменить цвет фона у вас есть 2 варианта.
Что-то вроде:
materialThemeOverlay
атрибут.Что-то вроде:
Вариант#2 требует
'сом.Гугл.андроид.материал:материал:1.1.0'
.Старую библиотеку поддержки:
С новым библиотека поддержки 28.0.0, библиотека дизайна теперь содержит
MaterialButton
.Вы можете добавить эту кнопку, чтобы наш файл макета с:
По умолчанию этот класс будет использовать цветовой акцент вашего теме кнопки заполнено цвет фона и белый для кнопок цвет текста.
Можно настроить кнопки с этими атрибутами:
приложение:rippleColor`: цвет используется для кнопки волновой эффект
приложение:backgroundTint`: применять оттенок на фоне кнопки. Если вы хотите изменить цвет фона кнопки, использовать этот атрибут вместо фона.
приложение:strokeColor: в цвет, который будет использоваться для кнопки инсульта
приложение:strokeWidth`: ширину использовать для нажатия кнопки
приложение:структура cornerradius`: используется для определения радиуса используется для углов кнопки
Вот образец, который поможет в нанесением стиль кнопки последовательно через ваше приложение.
Вот пример темы я использовал с конкретными стилями..
Это, как я определил форму кнопку & эффекты внутри РЭС/папки холст-в21...
2dp фирмы углы, чтобы держать его в соответствии с материалом темы.
Рядом с андроида.поддержка.дизайн.кнопки.MaterialButton` (который отметил Габриэле Мариотти),
Появилась другая
кнопка
виджетком.Гугл.андроид.материал.кнопки.MaterialButton
, которая имеет различные стили и простирается отAppCompatButton
:Заполняется, повышенный
кнопка
(по умолчанию):Заполняется, unelevated
кнопка
:Текст
Кнопка
:Значок``:
Текст кнопки с пиктограммой::
Читать: https://material.io/develop/android/components/material-button/
Я пробовал много ответов & сторонние библиотеки, но никто не держал границу и подняли воздействие на предварительно леденец, а оказывает волновой эффект на Lollipop без недостаток. Вот мое окончательное решение, объединяющее несколько ответов (границы/поднял не вынесено из-за картинки в оттенки серого глубина цвета) :
Леденец
Предварительно леденец
сборки.Gradle в
layout.xml
drawable-v21/btn_bg.xml
drawable/btn_bg.xml
Активность'ы метод onCreate
Я'вэ просто создан для Андроид библиотеки, что позволяет легко изменять цвет кнопки и пульсация цвета
https://github.com/xgc1986/RippleButton
Вы Don'т нужно создать стиль для каждой кнопки вы хотите, остроумие другой цвет, что позволяет настроить цвета случайным образом
Вы можете придать вид авиации, добавив к нему ось z и добавив к нему тень по умолчанию. Эта возможность была предоставлена в предварительном просмотре L и будет доступна после его выхода. На данный момент вы можете просто добавить изображение с таким видом для фона кнопки