我想将位图着色为不同的颜色。 感谢this SE question,当我在画布上绘制它时,我能够将它染成不同的颜色。
Paint p = new Paint(Color.RED);
ColorFilter filter = new LightingColorFilter(Color.RED, 1);
p.setColorFilter(filter);
但这似乎不适用于Color.WHITE
(可能是因为我的位图仅用1种颜色着色)。
我想要原始位图的白色形状(只有透明+白色)
答案 0 :(得分:8)
确定。我在这里回复可能面临这个问题的人。
为了保持位图的形状并将其着色,您需要使用PorterDuffColorFilter
而不是最初使用的LightingColorFilter
。
filter = new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
mPaint.setColorFilter(filter);
第二个参数是PorterDuff.Mode
,您可以找到完整列表here