web-dev-qa-db-ja.com

Androidでビットマップを描画する方法は?

Androidでビットマップに描画する方法を理解し、元に戻す機能のためにこれらの変更されたビットマップのコピーを保持しようとしています。

Bitmap b = ...
Paint p = new Paint();
canvas.drawBitmap(b, new Matrix(), null);
canvas.drawCircle(0,0,20,20);
//does Bitmap b have the circle drawn on it next time?

または、キャンバスで描画された後にビットマップを取得するにはどうすればよいですか(キャンバスの描画によって適用された変更でビットマップのスタックを保持したい)?多分私はこれについて完全に間違っていると思います。

12
Scott K

new Canvas(Bitmap bitmap) を使用して、Canvasに描画操作の結果を含むBitmapを提供します。

BitmapCanvasで描画した元のdrawBitmapは変更されません。

ユーザーが各操作を実行した後、次のことができます。

  • 実行された操作のリストをメモリに保持します
  • bitmap.compressを使用して中間結果を外部ストレージに保存します

別のアプローチは、 LayerDrawable を使用して、連続する描画操作を互いに積み重ねることです。ユーザーが実行された個々の操作を無効にできるようにすることを想像できます。

18
Kevin Gaudin

あなたはここでテキストを描く方法の完全なガイドを見ることができます:

https://www.skoumal.net/en/Android-how-draw-text-bitmap/

短編小説:

ビットマップをコピーして変更可能にし、それに基づいてCanvasを作成します。

0
gingo