我想为我的绘画应用程序实现橡皮擦。我可以使用以下代码擦除
paint.setColor(0x00000000);
paint.setAlpha(0x00);
但是当你再次开始绘画后擦拭它没有正确涂漆所以任何擦除油漆的想法请建议。
答案 0 :(得分:3)
请尝试以下代码。
paint.setAlpha(0xFF);//transperent color
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));//clear the draw
另请查看文件夹图形下的api演示中的示例FingerPaint.java。
setAlpha(int a)
帮助setColor(),它只分配颜色的alpha值,保持r,g,b值不变。
http://developer.android.com/reference/android/graphics/Paint.html。看看吧 文档。
编辑:
同时检查此
答案 1 :(得分:0)
我有同样的问题。
需要设置视图的 setLayerType 。
yourView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
您可以在构造函数中或通过视图对象进行设置。
完成了。
答案 2 :(得分:-1)
这应解决此问题
private void touch_move(float x, float y){
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
mPath.lineTo(mX, mY);
mCanvas.drawPath(mPath, mPaint);
mPath.reset();
mPath.moveTo(mX, mY);
mX = x;
mY = y;
}
}
在touch_up()中将其更改为:
private void touch_up() {
mPath.reset();
}