gpt4 book ai didi

java - 如何在 Canvas 上绘制 Canvas

转载 作者:行者123 更新时间:2023-11-29 10:05:11 26 4
gpt4 key购买 nike

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

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

谢谢!

最佳答案

这完全取决于您的实现。

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

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

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

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

关于java - 如何在 Canvas 上绘制 Canvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com