我使用这个代码:
<Button
android:id="@+id/play_pause_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:icon="@drawable/pause"
android:textAlignment="center"
style="@style/Widget.Material3.Button.Icon"/>
字符串
下面是我的图标的XML可绘制代码:
<vector android:height="1000dp" android:viewportHeight="48"
android:viewportWidth="48" android:width="1000dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#0883d9" android:pathData="M20,24H10V8c0,-1.1 0.9,-2 2,-2h6c1.1,0 2,0.9 2,2V24z"/>
<path android:fillColor="#0370c8" android:pathData="M18,42h-6c-1.1,0 -2,-0.9 -2,-2V24h10v16C20,41.1 19.1,42 18,42z"/>
<path android:fillColor="#0883d9" android:pathData="M38,24H28V8c0,-1.1 0.9,-2 2,-2h6c1.1,0 2,0.9 2,2V24z"/>
<path android:fillColor="#0370c8" android:pathData="M36,42h-6c-1.1,0 -2,-0.9 -2,-2V24h10v16C38,41.1 37.1,42 36,42z"/>
</vector>
型
但我只看到一个白色图标,像这样:
的数据
1条答案
按热度按时间qq24tv8q1#
您看到的问题是由于Material Design 3中Widget.Material3.Button.Icon的默认样式造成的。此样式会将色调应用于图标,这就是图标显示为白色的原因。
要解决这个问题,您可以在按钮的样式中将iconTint属性覆盖为null,以便使用可绘制对象的原始颜色。以下是您的操作方法:
首先,在styles.xml中定义一个新的样式,该样式继承自Widget.Material3.Button.Icon,并覆盖iconTint属性:
字符串
然后,在按钮中使用此样式:
型
进行此更改后,您的按钮将以其原始颜色显示图标。