如何在白色中着色Android位图?

时间:2014-05-29 17:12:54

标签: android bitmap

我想将位图着色为不同的颜色。 感谢this SE question,当我在画布上绘制它时,我能够将它染成不同的颜色。

Paint p = new Paint(Color.RED);
ColorFilter filter = new LightingColorFilter(Color.RED, 1);
p.setColorFilter(filter);

但这似乎不适用于Color.WHITE(可能是因为我的位图仅用1种颜色着色)。 我想要原始位图的白色形状(只有透明+白色)

1 个答案:

答案 0 :(得分:8)

确定。我在这里回复可能面临这个问题的人。

为了保持位图的形状并将其着色,您需要使用PorterDuffColorFilter而不是最初使用的LightingColorFilter

 filter = new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
 mPaint.setColorFilter(filter);

第二个参数是PorterDuff.Mode,您可以找到完整列表here