0
工作,我需要实现的涂料应用橡皮擦,具有帆布:橡皮擦PorterDuff.Mode.CLEAR不是在画布
Canvas canvas = new Canvas(bitmap);
位在哪里是一个可变的位图。 我写具有以下油漆在画布上:
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(0xFF000000);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(50);
然后当我要删除我做到以下几点:
mPaint.setMaskFilter(null);
mPaint.setColor(Color.TRANSPARENT);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
但它不工作。如何在不使用porterDuff模式的情况下执行擦除操作,或者如何更改代码以使其可以正常工作。
像这样,它会画笔,就像笔。但颜色不是黑色,而更多是灰色。
编辑:我尝试了其他的东西,我将位图值保存在另一个位图中,以便当我按下擦除键时,我会返回值。这工作,并删除图纸,但问题是,在此之后,如果我想绘制的东西,我画,但它消失。这是因为位图与位图是不一样的:
Canvas canvas = new Canvas(bitmap);
?
我有同样的问题,你介意分享你的代码吗?谢谢 – Chris
好的,这是代码中最重要的部分,代码与其中的所有内容相关:http://pastebin.com/6RjnZn7R –