我正在尝试弄清楚如何在 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?
或者如何在用 Canvas 绘制位图后获取位图(我想保留一堆位图,其中包含 Canvas 绘制应用的更改)?也许我的做法完全错误。
最佳答案
使用new Canvas(Bitmap bitmap)
为 Canvas
提供一个 Bitmap
,它将包含您的绘图操作的结果。
您使用 drawBitmap
在 Canvas
上绘制的原始 Bitmap
永远不会被修改。
用户完成每个操作后,您可能会:
- 在内存中保存已完成操作的列表
- 使用 Bitmap.compress 将中间结果保存到外部存储
另一种方法是使用 LayerDrawable
将连续的绘图操作堆叠在一起。您可以想象允许用户禁用每个已完成的单独操作。
关于android - 如何在android中绘制位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160149/