キャンバスを持つペイントアプリケーション用の消しゴムを実装する必要があります。
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);
?