如何在画布上绘制画布

Iva*_*del 1 java android android-canvas

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

如果那不可能,那么这样做的最佳解决方案是什么?

谢谢!

Eri*_*ric 9

这完全取决于您的实施.

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

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

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

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