В разработке приложений под Android часто возникает необходимость изменить цвет кнопки Floating Action Button. Однако, выполнить это не всегда бывает просто. Например, кажется логичным попробовать изменить цвет фона кнопки следующим образом:
1 2 3 4 | <android.support.design.widget.FloatingActionButton ... android:background="@color/mycolor" /> |
Или же с помощью кода:
1 2 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.my_fab); fab.setBackgroundColor(Color.parseColor( "#mycolor" )); |
Однако, эти подходы не приводят к желаемому результату. Кнопка либо остается зеленой, либо становится квадратной. Ниже представлено решение этой проблемы.
Изменение цвета кнопки:
Для изменения цвета кнопки Floating Action Button следует использовать атрибут app:backgroundTint
, а не android:background
. Таким образом, код будет выглядеть следующим образом:
1 2 3 4 | <android.support.design.widget.FloatingActionButton ... app:backgroundTint="@color/mycolor" /> |
Для изменения цвета в коде можно использовать метод setBackgroundTintList
:
1 2 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.my_fab); fab.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor( "#mycolor" ))); |
Добавление эффекта ripple:
Эффект ripple можно добавить с помощью атрибута app:rippleColor
. Вот пример его использования:
1 2 3 4 | <android.support.design.widget.FloatingActionButton ... app:rippleColor="@color/mycolor" /> |
В коде этот эффект можно добавить следующим образом:
1 2 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.my_fab); fab.setRippleColor(Color.parseColor( "#mycolor" )); |
В заключение хочется отметить, что Android предоставляет разработчикам гибкие инструменты для настройки внешнего вида элементов пользовательского интерфейса. Главное — знать, как их правильно использовать.
Добавить комментарий