Android 是否可以将图像数组添加到画布,然后将其删除?

Android 是否可以将图像数组添加到画布,然后将其删除?,android,bitmap,arraylist,android-canvas,Android,Bitmap,Arraylist,Android Canvas,是否可以将图像数组添加到画布中,然后删除单个图像?假设我声明一个ArrayList并将图像添加到其中。然后我把它们画在画布上。我怎样才能删除一个图像而不是全部图像?这可能吗 ArrayList<Integer> myImageList = new ArrayList<Integer>(); myImageList.add(R.drawable.image1); myImageList.add(R.drawable.image2); myImageList.add(R.dr

是否可以将图像数组添加到画布中,然后删除单个图像?假设我声明一个ArrayList并将图像添加到其中。然后我把它们画在画布上。我怎样才能删除一个图像而不是全部图像?这可能吗

ArrayList<Integer> myImageList = new ArrayList<Integer>();
myImageList.add(R.drawable.image1);
myImageList.add(R.drawable.image2);
myImageList.add(R.drawable.image3);
canvas.drawBitmap(myImageList[0], 300, 400, null);
canvas.drawBitmap(myImageList[1], 300, 400, null);
canvas.drawBitmap(myImageList[2], 300, 400, null);
ArrayList myImageList=新建ArrayList();
myImageList.add(R.drawable.image1);
myImageList.add(R.drawable.image2);
myImageList.add(R.drawable.image3);
drawBitmap(myImageList[0],300400,空);
drawBitmap(myImageList[1],300400,null);
drawBitmap(myImageList[2],300400,null);

这是不可能的,因为一旦在画布上绘制了任何图像,该画布位图的像素值就会改变

您必须清除整个画布,并在画布上重新绘制所有其他图像

您可以做的一个优化是应用剪辑区域,在这种情况下,请不要清除画布并按照以下步骤操作:

Region clip_region= region of the image(which you want to remove ) on the canvas;
canvas_object.clipRegion(clip_region);

现在,只清除剪辑区域区域并在画布上绘制所有其他图像,通过此优化,您的应用程序将比不使用剪辑区域的绘图占用更少的cpu,

您的意思是从画布上“删除”它们,还是从ArrayList中删除它们?我的意思是从画布上逐个删除它们。在绘制之后,没有真正的“图像”概念。如果要擦除已经存在的像素,则必须清除画布。参考: