如何在android中绘制Bitmap?

时间:2010-11-11 23:05:23

标签: 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?

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

2 个答案:

答案 0 :(得分:18)

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

您在Bitmap上使用Canvas绘制的原始drawBitmap将永远不会被修改。

用户完成每项操作后,您可以:

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

另一种方法可能是使用LayerDrawable将连续绘制操作堆叠在一起。您可以想象允许用户禁用每个单独的操作。

答案 1 :(得分:0)

您可以在此处查看完整指南如何绘制文字:

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

长话短说:

复制您的位图以使其可变并基于它创建Canvas。