Измените цвет формы xml drawable как src программно

Возникли проблемы с изменением цвета фигуры в выводимом XML.

У меня есть этот XML-файл с возможностью рисования (который создает 3 круга один внутри другого):

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval"
        android:id="@+id/card_layer1">
        <solid android:color="@android:color/black"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <size
            android:width="5dp"
            android:height="5dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </shape>
</item>
<item android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp">
    <shape android:shape="oval"
        android:id="@+id/card_layer2">
        <solid android:color="#ff0000"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <size
            android:width="5dp"
            android:height="5dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </shape>
</item>

<item android:top="4dp" android:left="4dp" android:right="4dp" android:bottom="4dp">
    <shape android:shape="oval"
        android:id="@+id/card_layer3">
        <solid android:color="#ffffff"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <size
            android:width="5dp"
            android:height="5dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </shape>
</item>

I want to be able to change programmatically the color of each layer of these shapes.

Я нашел этот ответ: Изменить цвет фигуры, но у меня это не работает, потому что он изменяет атрибут background и Я использую атрибут src, поэтому думаю, что мне нужно другое решение.

По сути, мне нужно найти способ сделать что-то, что даст мне src вида, а не фона:

View v = findViewById(R.id.layout_id);

LayerDrawable bgDrawable = (LayerDrawable)v.getBackground(); // get src and not background

Но я не мог найти ничего, что могло бы это сделать..

Любая помощь будет оценена!


person Ofer Arial    schedule 01.01.2017    source источник
comment
возможно, просмотрите цветовые фильтры /10114420/   -  person Blundell    schedule 02.01.2017
comment
поэтому не звоните View#getBackground, а звоните ImageView#getDrawable   -  person pskink    schedule 02.01.2017
comment
Спасибо, но у меня это все еще не работает.. Я хочу постоянно устанавливать цвет разных слоев, и это не работает.. Есть еще идеи??   -  person Ofer Arial    schedule 02.01.2017
comment
прочитать android.graphics.drawable.LayerDrawable документацию   -  person pskink    schedule 02.01.2017
comment
@pskink все еще не работает, посмотрите здесь: stackoverflow .com/questions/41433144/   -  person Ofer Arial    schedule 02.01.2017
comment
вместо этого попробуйте Mode.SRC   -  person pskink    schedule 02.01.2017