Удалить цвет фона MaterialButton и установить значок

Я хотел удалить цвет фона кнопки материала и хотел показать только значок. Значок не должен быть окрашен каким-либо цветом, но должен отображать изображение (рисуемое), которое я устанавливаю. Вот чего я хочу добиться: введите здесь описание изображения

Атрибуты кнопки, которые я использую:

<com.google.android.material.button.MaterialButton
                        android:id="@+id/btn_google"
                        app:iconPadding="0dp"
                        android:padding="0dp"
                        android:minHeight="48dp"
                        android:insetTop="0dp"
                        android:insetBottom="0dp"
                        app:elevation="3dp"
                        android:minWidth="48dp"
                        app:iconGravity="textStart"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        app:cornerRadius="50dp"
                        app:icon="@drawable/ic_google_logo"/>

И вот что я получаю: введите здесь описание изображения

Пока я устанавливал иконку прозрачного цвета логотипа google вот так (ic_google_logo): введите здесь описание изображения

Я попытался добавить этот стиль к кнопке: style="@style/Widget.MaterialComponents.Button.OutlinedButton", и он будет подкрашивать значок, исправляя цвет фона. как это:

введите здесь описание изображения

Если вы сталкивались с этой проблемой раньше, пожалуйста, помогите. Спасибо за ваше время!


person Kidus Tekeste    schedule 18.12.2020    source источник
comment
Почему бы не использовать основные ImageView с android:src="@drawable/ic_google_logo"? Угловой радиус можно сделать другим раствором.   -  person lbasek    schedule 18.12.2020
comment
MaterialButton по умолчанию применяет оттенок, но вы могли бы попробовать с app:backgroundTint="@color/white" и app:iconTint="@android:color/transparent"?   -  person RobCo    schedule 18.12.2020
comment
@RobCo окрасил мою иконку в белый цвет... теперь все белое.   -  person Kidus Tekeste    schedule 18.12.2020
comment
@lbasek у матриальных кнопок уже так много замечательных функций, и я хотел их использовать. Но есть и такие головные боли. :/   -  person Kidus Tekeste    schedule 18.12.2020


Ответы (1)


Добавьте следующее свойство:

android:backgroundTint="@color/white"

Полный код:

<com.google.android.material.button.MaterialButton
    android:id="@+id/btn_google"
    android:backgroundTint="@color/white"
    app:iconPadding="0dp"
    android:padding="0dp"
    android:minHeight="48dp"
    android:insetTop="0dp"
    android:insetBottom="0dp"
    app:elevation="3dp"
    android:minWidth="48dp"
    app:iconGravity="textStart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:cornerRadius="50dp"
    app:icon="@drawable/ic_google_logo"/>

Прочтите следующий документ, чтобы узнать подробности об атрибутах кнопки материала:

https://material.io/components/buttons/android#text-button

person Md Imtiaz Hossain    schedule 22.01.2021