Как изменить цвета Drawable в Android?

Я работаю над приложением андроида, и у меня есть drawable, которое я загружаю из исходного изображения. На этом изображении я хотел бы преобразовать все белые пиксели к другому цвету, сказать синий, и затем кэшировать результирующий объект Drawable, таким образом, я могу использовать его позже.

Так, например, скажите, что я имею 20x20 файл PNG, который имеет белый круг в середине, и что все вне круга прозрачно. Что лучший способ состоит в том, чтобы поменять цвет на тот белый круговой синий и кэшировать результаты? Ответ изменяется, если я хочу использовать то исходное изображение для создания нескольких новых Drawables (скажите синий, красный, зеленый, оранжевый, и т.д.)?

Я предполагаю, что захочу использовать ColorMatrix в некотором роде, но я не уверен как.

253
задан Vadim Kotov 12 July 2019 в 03:20
поделиться

1 ответ

Int color = Color.GRAY; 
// or int color = Color.argb(123,255,0,5);
// or int color = 0xaaff000;

n XMl   /res/values/color.xml
<?xml version="1.0" encoding="utf-8">
<resources>
    <color name="colorRed">#ff0000</color>
</resoures> 

int color = ContextCompat.getColor(context, R.color.colorRed);

GradientDrawable drawableBg = yourView.getBackground().nutate();
drawableBg.setColor(color);
0
ответ дан 23 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: