Android 是否可以将图像数组添加到画布,然后将其删除?
是否可以将图像数组添加到画布中,然后删除单个图像?假设我声明一个ArrayList并将图像添加到其中。然后我把它们画在画布上。我怎样才能删除一个图像而不是全部图像?这可能吗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<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中删除它们?我的意思是从画布上逐个删除它们。在绘制之后,没有真正的“图像”概念。如果要擦除已经存在的像素,则必须清除画布。参考: