AvoidXferMode替换画布上的颜色

时间:2010-01-15 12:25:00

标签: android graphics

我正在尝试使用AvoidXferMode替换在Canvas上绘制的内容的颜色。 从android文档来看,它看起来就像我需要的那样:

  

AvoidXfermode xfermode会在除了opColor之外的任何地方绘制src,或者根据模式,仅在opColor之上绘制。

我正在尝试的是这样的事情:

Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawPaint(paint); // actually drawing a bitmap here
paint.setXferMode(new AvoidXferMode(Color.RED, 0, TARGET);
paint.setColor(Color.GREEN);
canvas.drawPaint(paint);

然而,这只是一个红色的屏幕,而不是我想象的绿色(用绿色代替红色)。我想我错过了一些地方...有什么建议吗?

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:0)

我目前遇到了同样的问题但我通过将255指定为容差来实现它。根据API文档,这是错误的(它应该使用此完全容差设置绘制目的地),但由于某种原因,值255完全与值0应该做的一样。