Возникли проблемы с изменением цвета фигуры в выводимом 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
Но я не мог найти ничего, что могло бы это сделать..
Любая помощь будет оценена!
View#getBackground
, а звонитеImageView#getDrawable
- person pskink   schedule 02.01.2017android.graphics.drawable.LayerDrawable
документацию - person pskink   schedule 02.01.2017