Изменить только один цвет изображения на другой

У меня есть вектор 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>

что оказывает на это:
введите описание изображения здесь

Обратите внимание, что внутренняя часть белая, а внешняя прозрачная (мы просто не можем заметить на стеке переполнение, потому что фон страницы белый).

Я хочу только изменить цвет черной части на какой-то другой цвет (например, СИНИЙ), сохранив при этом белую и прозрачную части как есть.

Я пытался с помощью:

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

но это делает черные и белые части синими.

Есть ли в андроиде способ изменить только черную часть?

1 ответ

Решение

Для тех, у кого есть подобная проблема, это обходной путь, который я в конечном итоге использовал:

Я удалил белую часть вектора (таким образом, у меня было черное кольцо), и я установил его как ресурс изображения.
Затем я сделал белую форму круга и установил ее в качестве фона ImageView.

Теперь, когда я установил цветной фильтр, он изменил только цвет переднего плана - кольца.

Другие вопросы по тегам