微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:渐变是填充颜色会影响笔触颜色

如何解决Android:渐变是填充颜色会影响笔触颜色

我已经为我的矢量可绘制对象指定了渐变作为填充颜色。奇怪的是,虽然我实际上为笔划颜色分配了单独的颜色,但现在也将渐变用作笔划颜色。有人知道这是怎么回事吗?

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

解决方法

如果对矢量可绘制填充颜色和笔触颜色使用相同的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,8
                      z">
    </path>
</vector>

希望这可以解决您的问题!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。