我已经为我的矢量可绘制对象指定了渐变作为填充颜色。奇怪的是,虽然我实际上为笔划颜色分配了单独的颜色,但现在也将渐变用作笔划颜色。有人知道这是怎么回事吗?
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="28dp"
android:height="16dp"
android:viewportWidth="28"
android:viewportHeight="16">
<path
android:strokeWidth="0.5"
android:strokeColor="#000000"
android:pathData="M0,0
v16
M28,0
v16
M6,12
q-2,0 -2,-2
v-4
q0,-2 2,-2
h9.567
a6,6 0 1,1 0,8
z">
<aapt:attr name="android:fillColor">
<gradient
android:startY="8"
android:startX="4"
android:startColor = "#FF333333"
android:endY="8"
android:endX="26"
android:endColor = "#FFFF0000"
android:type="linear">
</gradient>
</aapt:attr>
</path>
</vector>
答案 0 :(得分:0)
如果对矢量可绘制填充颜色和笔触颜色使用相同的Paint,则每次实际绘制之前,都需要分配正确的颜色。或者,您可以考虑使用其他Paint来避免该问题。
[更新]好的,忘记上面的段落。使用该代码,我发现它可以更改为以下代码:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="28dp"
android:height="16dp"
android:viewportWidth="28"
android:viewportHeight="16">
<path
android:pathData="M0,0
v16
M28,0
v16
M6,12
q-2,0 -2,-2
v-4
q0,-2 2,-2
h9.567
a6,6 0 1,1 0,8
z">
<aapt:attr name="android:fillColor">
<gradient
android:startY="8"
android:startX="4"
android:startColor = "#FF333333"
android:endY="8"
android:endX="26"
android:endColor = "#FFFF0000"
android:type="linear">
</gradient>
</aapt:attr>
</path>
<path
android:strokeWidth="0.5"
android:strokeColor="#000000"
android:pathData="M0,0
v16
M28,0
v16
M6,12
q-2,0 -2,-2
v-4
q0,-2 2,-2
h9.567
a6,6 0 1,1 0,8
z">
</path>
</vector>
希望这可以解决您的问题!