材质按钮图标​​显示为无颜色

时间:2018-11-24 19:06:12

标签: android

我正在使用以下材料按钮:

<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。但是显示的图标没有任何颜色(即白色的心形)。 为什么没有显示图像的实际颜色? 谢谢

6 个答案:

答案 0 :(得分:2)

可能正在寻找将此设置 iconTint 设置为

<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" />

实现的输出 enter image description here

我知道为时已晚,但对其他人有帮助 谢谢

快乐编码:)

答案 1 :(得分:1)

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" 
   .../>

答案 2 :(得分:1)

如果您的图标有多种颜色,则还必须应用TintMode。

  app:icon="@drawable/ic_delete"
  app:iconTint="#ffffff"
  app:iconTintMode="multiply"

使用此图标将为您提供完美的图标设计。

答案 3 :(得分:1)

只需要在材质按钮图标​​中添加色调模式

app:iconTintMode="multiply"

答案 4 :(得分:0)

您可以尝试设置按钮的iconTint属性:

app:iconTint="#ffffff"

答案 5 :(得分:0)

您可以使用app:iconTint="@android:color/white",因为他们在文档MaterialButton Docs

中提到了这一点