如何去除材料按钮中图标上的色调?



我想有白色背景和彩色图标的"使用谷歌登录"按钮,但是当我使用这个谷歌图标时,总是被着色。

<android.support.design.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign in with Google"
app:icon="@drawable/ic_google_colored"/>

如何使图标不着色?

我已经找到了解决方案,我只是更改了iconTintMode和图标色调颜色

<android.support.design.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign in with Google"
app:icon="@drawable/ic_google_colored"
app:iconTint="@android:color/transparent"
app:iconTintMode="add"/>

我愿意接受更好的解决方案

使用此图标并退出色调图标以显示真实颜色

app:icon="@drawable/ic_google"
app:iconTint="@null"

<Button
android:id="@+id/idGoogle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:icon="@drawable/ic_google"
app:iconTint="@null"/>

具有真实颜色的图标显示黑色背景

您还可以使用白色作为图标色调,并使用乘法作为彩色图标的图标TintMode。

app:iconTint="@color/white"
app:iconTintMode="multiply"

这些答案都不适合我。 但是在进行了很多实验之后,我发现这确实起到了作用。

<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="fitCenter"
android:background="#0000"
android:foreground="@android:drawable/ic_menu_camera"
/>

看来关键是android:background="#0000". 不知道为什么@null不起作用,但这就是最终让那个愚蠢的颜色消失的原因。

button.iconTint = ColorStateList.valueOf(Color.TRANSPARENT)

最新更新