Material 按钮图标显示没有颜色
Material Button Icon is showing without color
我正在使用以下 material 按钮:
<android.support.design.button.MaterialButton
android:id="@+id/bFavourite" style="@style/Widget.MaterialComponents.Button.UnelevatedButton.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:insetTop="0dp"
android:insetBottom="0dp"
android:textAllCaps="false"
android:textSize="20sp"
app:backgroundTint="@color/main_dark_blue"
app:backgroundTintMode="src_over"
app:cornerRadius="0dp"
app:icon="@drawable/heart_filled"
app:iconGravity="textStart"
app:iconPadding="0dp" />
heart_filled
是一颗红心的 png。然而,图标显示时没有任何颜色(即白色心形)。
为什么没有显示图像的实际颜色?
谢谢
您可以尝试设置按钮的iconTint
属性:
app:iconTint="#ffffff"
您可以使用 app:iconTint="@android:color/white"
因为他们在文档中提到了这一点 MaterialButton Docs
也许您正在寻找这组 iconTint
到 null
<com.google.android.material.button.MaterialButton
android:id="@+id/btnGoogle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginStart="@dimen/_2sdp"
android:layout_weight="1"
app:icon="@drawable/ic_google"
app:iconGravity="textStart"
app:iconTint="@null"
android:elevation="@dimen/_10sdp"
android:text="@string/string_google"
android:textAllCaps="false"
app:rippleColor="@color/colorBlueShade1"
app:cornerRadius="@dimen/_20sdp"
app:backgroundTint="@color/colorWhite"
android:textColor="@color/colorPrimary" />
已实现的输出
app:icon
默认使用样式提供的 app:iconTint
颜色着色(在您的情况下为 Widget.MaterialComponents.Button.UnelevatedButton.Icon
)。
您可以使用 app:iconTint="@null"
覆盖此行为到您的按钮:
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.UnelevatedButton.Icon"
app:iconTint="@null"
.../>
如果您的图标有多种颜色,您还必须应用 TintMode。
app:icon="@drawable/ic_delete"
app:iconTint="#ffffff"
app:iconTintMode="multiply"
使用它会给你完美的图标设计。
只需要在material按钮图标中添加色调模式
app:iconTintMode="multiply"
我正在使用以下 material 按钮:
<android.support.design.button.MaterialButton
android:id="@+id/bFavourite" style="@style/Widget.MaterialComponents.Button.UnelevatedButton.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:insetTop="0dp"
android:insetBottom="0dp"
android:textAllCaps="false"
android:textSize="20sp"
app:backgroundTint="@color/main_dark_blue"
app:backgroundTintMode="src_over"
app:cornerRadius="0dp"
app:icon="@drawable/heart_filled"
app:iconGravity="textStart"
app:iconPadding="0dp" />
heart_filled
是一颗红心的 png。然而,图标显示时没有任何颜色(即白色心形)。
为什么没有显示图像的实际颜色?
谢谢
您可以尝试设置按钮的iconTint
属性:
app:iconTint="#ffffff"
您可以使用 app:iconTint="@android:color/white"
因为他们在文档中提到了这一点 MaterialButton Docs
也许您正在寻找这组 iconTint
到 null
<com.google.android.material.button.MaterialButton
android:id="@+id/btnGoogle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginStart="@dimen/_2sdp"
android:layout_weight="1"
app:icon="@drawable/ic_google"
app:iconGravity="textStart"
app:iconTint="@null"
android:elevation="@dimen/_10sdp"
android:text="@string/string_google"
android:textAllCaps="false"
app:rippleColor="@color/colorBlueShade1"
app:cornerRadius="@dimen/_20sdp"
app:backgroundTint="@color/colorWhite"
android:textColor="@color/colorPrimary" />
已实现的输出
app:icon
默认使用样式提供的 app:iconTint
颜色着色(在您的情况下为 Widget.MaterialComponents.Button.UnelevatedButton.Icon
)。
您可以使用 app:iconTint="@null"
覆盖此行为到您的按钮:
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.UnelevatedButton.Icon"
app:iconTint="@null"
.../>
如果您的图标有多种颜色,您还必须应用 TintMode。
app:icon="@drawable/ic_delete"
app:iconTint="#ffffff"
app:iconTintMode="multiply"
使用它会给你完美的图标设计。
只需要在material按钮图标中添加色调模式
app:iconTintMode="multiply"