Android 如何将一个画布复制到另一个画布?
我已经在画布中绘制了一些矩形,我想将这些矩形复制到另一个画布中。通常讨论的使用位图的解决方案不起作用,因为我在此画布中没有使用位图,没有图像,只有这些矩形Android 如何将一个画布复制到另一个画布?,android,android-canvas,Android,Android Canvas,我已经在画布中绘制了一些矩形,我想将这些矩形复制到另一个画布中。通常讨论的使用位图的解决方案不起作用,因为我在此画布中没有使用位图,没有图像,只有这些矩形 如何做到这一点?您是否尝试过将绘制时指定给矩形的属性保存到第一个画布,然后根据这些属性在第二个画布上重新绘制它们?也许您可以尝试为第一个画布创建一个矩形对象,并将其传递给第二个画布上的canvas.drawRect()。您是否尝试过在绘制到第一个画布时保存给定给矩形的属性,然后根据这些属性在第二个画布上重新绘制它们?也许您可以尝试为第一个画布
如何做到这一点?您是否尝试过将绘制时指定给矩形的属性保存到第一个画布,然后根据这些属性在第二个画布上重新绘制它们?也许您可以尝试为第一个画布创建一个矩形对象,并将其传递给第二个画布上的canvas.drawRect()。您是否尝试过在绘制到第一个画布时保存给定给矩形的属性,然后根据这些属性在第二个画布上重新绘制它们?也许您可以尝试为第一个画布创建一个Rect对象,并将其传递给第二个画布上的canvas.drawRect()。您可以使用画布创建位图,然后在该位图上绘制
bitmap = Bitmap.createBitmap(50,50,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// drawn some rects into canvas
现在,您可以使用位图在任何画布上进行绘制
Canvas canvas1 = new Canvas(bitmap);
Canvas canvas2 = new Canvas(bitmap);
或者,如果您已经有画布:
canvas.drawBitmap(bitmap, 0, 0, paint);
通过这种方式,您只能绘制一次矩形,而不是在每个画布上绘制。您可以使用画布创建位图,然后在该位图上绘制
bitmap = Bitmap.createBitmap(50,50,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// drawn some rects into canvas
现在,您可以使用位图在任何画布上进行绘制
Canvas canvas1 = new Canvas(bitmap);
Canvas canvas2 = new Canvas(bitmap);
或者,如果您已经有画布:
canvas.drawBitmap(bitmap, 0, 0, paint);
这样,您只需在每个画布上绘制一次矩形。请提供代码,以便我们推荐任何替代选项。画布也总是在位图上绘制,但没有从画布中提取位图的方法。请提供代码,以便我们推荐任何替代选项。画布也总是在位图上绘制,但没有从画布中提取位图的方法。如果必须提前确定位图的宽度和高度,如何确定位图的宽度和高度为整个画布?您可以使用
createScaledBitmap(位图src、int-dstWidth、int-dstWidth、布尔过滤器)
另请参见canvas.drawBitmap(位图位图、Rect src、Rect dst、Paint Paint Paint)
。这将绘制指定的位图,自动缩放/转换以填充目标矩形如果必须提前确定位图宽度和高度,如何确定整个画布的位图宽度和高度?您可以使用createScaledBitmap(位图src、int dstWidth、int dstHeight、布尔过滤器)
另请参见canvas.drawBitmap(位图位图、Rect src、Rect dst、Paint Paint)
。此操作将绘制指定的位图,并自动缩放/转换以填充目标矩形