È possibile aggiungere una serie di immagini atela e quindi eliminare singole immagini? Quindi diciamo che dichiaro un ArrayList e vi aggiungo le mie immagini. Poi li disegno sulla tela. Come posso eliminare solo un'immagine anziché tutte? È possibile?
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);
risposte:
0 per risposta № 1Non è possibile, poiché una volta che hai disegnato un'immagine su tela, il valore in pixel della bitmap di quella tela viene modificato.
Devi cancellare l'intera tela e ridisegnare tutte le altre immagini sulla tela,
Un'ottimizzazione che puoi fare è applicare un'area di clip, in tal caso non cancellare l'area di disegno e seguire i passaggi:
Region clip_region= region of the image(which you want to remove ) on the canvas;
canvas_object.clipRegion(clip_region);
Ora cancella solo l'area clip_region e disegna tutte le altre immagini sulla tela, con questa ottimizzazione la tua app impiegherà meno cpu per disegnare rispetto al disegno senza CLIP REGION,