我正在尝试实现位图画笔并在画布上绘制她。问题是,当我把刷子阿尔法颜色,它开始强加普遍。指向旧的,以便透明度消失。就像混合模式一样。
一定是这样,但不是在我画这个笔画的那一刻。 必须在所有先前的笔划图层上施加下一笔划, 但不是现在的。
如何实现?我尝试使用:
paint.setXfermode(new AvoidXfermode(paint Color,255,AvoidXfermode.Mode.AVOID));
这样可以避免拼写当前的颜色,但是在刷子显示的白色透明区域的第一个位置。第二个不适用于强加潜在的笔画。
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//Draw all dots on tempBitmap - canvas
for (Vector2 pos : mPositions)
{
tempCanvas.drawBitmap(mBitmapBrush, pos.x, pos.y, paintBrushStyle);
}
//Draw on view bitmap
canvas.drawBitmap(canvasBitMap, 0, 0, drawPaint);
//Clear all points
mPositions.clear();
}
public void setColor(String newColor)
{
invalidate();
paintColor = Color.parseColor(newColor);
paintBrushStyle.setColor(Color.BLACK);
//Make transp.
paintBrushStyle.setAlpha(100);
//set bitmapbrush color
paintBrushStyle.setColorFilter(new PorterDuffColorFilter(paintColor,PorterDuff.Mode.SRC_IN));
//test to avoid blend
paintBrushStyle.setXfermode(new AvoidXfermode(paintColor,255, AvoidXfermode.Mode.AVOID));