如何在android中绘制Bitmap?

Sco*_*t K 12 android canvas bitmap

我正在试图弄清楚如何在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?
Run Code Online (Sandbox Code Playgroud)

或者如何在使用画布绘制位图之后获取位图(我想保留一堆位图以及画布绘制所应用的更改)?也许我说这完全错了.

Kev*_*din 19

使用new Canvas(Bitmap bitmap)提供CanvasBitmap其中将包含绘图操作的结果.

原来Bitmap是你对你的画CanvasdrawBitmap将永远不会被修改.

在用户完成每个操作后,您可能:

  • 保留内存中已完成的操作列表
  • 使用Bitmap.compress将中间结果保存到外部存储

另一种方法可以是使用a LayerDrawable来将连续的绘制操作堆叠在彼此之上.您可以想象允许用户禁用每个单独的操作.