1

我正在构建一个 android 应用程序,但我遇到了一件简单的事情:如何将 Canvas 对象绘制(或“添加”)到另一个 Canvas 对象,例如“合并”它们?

如果那不可能,那么最好的解决方案是什么?

谢谢!

4

1 回答 1

9

这完全取决于您的实施。

  • 如果每个 Canvas 直接从每个帧的数组(形状等)中绘制对象,您可以简单地将一个数组附加到另​​一个数组。这样,您的 Canvas 不需要彻底改变,只需将一个数组添加到另一个数组(可能是ArrayList这里的方式)。

  • 如果不是上述情况,您可能需要进行一些更剧烈的更改。当我遇到类似的问题时,我创建了一个名为 的新方法commitChanges(),它为现有的 Canvas 添加了一系列更改(在顶部添加线条等)。

    1. 我首先使受影响的区域无效,然后创建了一个具有 Canvas: 大小的位图Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGBA_8888);
    2. 接下来,我从该位图创建了一个画布:Canvas workingDrawing = new Canvas(bmp);.
    3. 然后,我把我需要的所有东西都画到了那个新的画布上。在这种情况下,这将是来自您的一个画布的数据。
    4. 现在,在你的另一个画布中,你必须得到你刚刚画的位图,然后把它画到这个画布上。像这样:canvas.drawBitmap(yourDrawnBitmap, 0.0f, 0.0f, null);

我认为您将面临的困难是将数据从一个 Canvas 传输到另一个。但是,无论您的实现如何,上述方法之一都应该对您有效。

于 2012-06-06T20:05:00.227 回答