【发布时间】:2012-06-06 17:03:04
【问题描述】:
我正在构建一个 android 应用程序,但遇到了一件简单的事情:如何将 Canvas 对象绘制(或“添加”)到另一个 Canvas 对象,例如“合并”它们?
如果这不可能,那么最好的解决方案是什么?
谢谢!
【问题讨论】:
标签: java android android-canvas
我正在构建一个 android 应用程序,但遇到了一件简单的事情:如何将 Canvas 对象绘制(或“添加”)到另一个 Canvas 对象,例如“合并”它们?
如果这不可能,那么最好的解决方案是什么?
谢谢!
【问题讨论】:
标签: java android android-canvas
这完全取决于您的实现。
如果每个 Canvas 在每一帧都直接从一个数组(形状等)中绘制对象,您可以简单地将一个数组附加到另一个数组。这样一来,您的 Canvas 就不需要大刀阔斧地改变,只需将一个数组添加到另一个数组(可能是 ArrayList 将是这里的方式)。
如果不是上述情况,您可能需要进行一些更剧烈的更改。当我遇到类似的问题时,我创建了一个名为 commitChanges() 的新方法,它为现有的 Canvas 添加了一系列更改(在顶部添加线条等)。
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGBA_8888);。Canvas workingDrawing = new Canvas(bmp);。canvas.drawBitmap(yourDrawnBitmap, 0.0f, 0.0f, null);。我认为您将面临的困难是将数据从一个 Canvas 传输到另一个 Canvas。但是,无论您的实施如何,上述方法之一都应该对您有效。
【讨论】:
m doing a sort of "simulator" for the robot im 正在为比赛做准备,但是,有很多“部分”相对于其他部分移动,所以我必须手动计算每个相关部分。我的想法是创建画布,并与现有画布合并,这样定位和旋转就不会成为问题。例如:一个Body有一个头,一个腿,一个脚......当我渲染“Body”时,它会调用renderHead,并获取头部的画布,然后将其放置在正确的位置和旋转上。如果 Head 有眼睛,那么在 drawHead 中,我会调用 drawEyes,然后在 drawHead 中加入眼睛..
m talking about, go here: http://techlego.blogspot.com.br/search/label/rescue%20b Its,但你可以使用谷歌翻译! =]