仅将一种图像颜色更改为另一种

Change only one image color to another

我有一个像这样的 xml 向量:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="16dp"
        android:height="16dp"
        android:viewportWidth="16.0"
        android:viewportHeight="16.0">
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M8,14c-3.3,0 -6,-2.7 -6,-6s2.7,-6 6,-6s6,2.7 6,6S11.3,14 8,14z"/>
    <path
        android:fillColor="#000000"
        android:pathData="M8,4c2.2,0 4,1.8 4,4s-1.8,4 -4,4s-4,-1.8 -4,-4S5.8,4 8,4M8,0C3.6,0 0,3.6 0,8c0,4.4 3.6,8 8,8c4.4,0 8,-3.6 8,-8C16,3.6 12.4,0 8,0L8,0z"/>
</vector>

呈现为:

注意里面是白色的,外面是透明的(只是Whosebug上看不到,因为页面背景是白色的)。

我只想将黑色部分的颜色更改为其他颜色(例如蓝色),同时保留白色和透明部分。

我尝试使用:

imageView.setColorFilter(newColor, PorterDuff.Mode.SRC_ATOP);

但这会使黑色和白色部分变蓝。

android有没有办法只改变黑色部分?

对于遇到类似问题的任何人,这是我最终使用的解决方法:

我删除了矢量的白色部分(所以我有一个黑色的 ring ),并将其设置为图像资源。
然后我做了一个白色的圆圈形状,并将其设置为ImageView的背景。

现在当我设置滤色器时,它只改变了前景 - 环的颜色。