0

キャンバスを持つペイントアプリケーション用の消しゴムを実装する必要があります。

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);

4

1 に答える 1

0

したがって、ビューを追加するレイアウトを作成する代わりに。1つのレイアウトと1つのimageviewを含む1つの親レイアウトを配置します。imageviewに背景画像を配置します。子のレイアウトに透明な絵を描きました。次に、子のレイアウトを前面に表示すると、現在機能しています

于 2012-11-05T14:43:50.567 に答える