Значок кнопки Материал отображается без цвета
Я использую следующую кнопку материала:
<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 ответов
Вы можете попробовать установить iconTint
атрибут кнопки:
app:iconTint="#ffffff"
Может быть, вы ищете этот набор 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" />
Я знаю, что слишком поздно, но это может быть полезно для других. Спасибо
Удачного кодирования:)
Просто нужно добавить режим оттенка в значок кнопки материала
app:iconTintMode="multiply"
Если ваш значок имеет несколько цветов, вам также придется применить TintMode.
app:icon="@drawable/ic_delete"
app:iconTint="#ffffff"
app:iconTintMode="multiply"
Это даст вам идеальный дизайн иконок.
В 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"
.../>
Ты можешь использовать app:iconTint="@android:color/white"
потому что они упоминают это в документах MaterialButton Docs