auftritt Wie kann ich onDraw
so überschreiben, dass ich das, was (als Bitmap) gezogen worden wäre, und sie verändern?außer Kraft setzen OnDraw zu ändern, wie die Zeichnung (Android)
Die Methode unten funktioniert, aber es leider beinhaltet dieses Verfahren eine Bitmap, die Größe des gesamten Bildschirms zu schaffen - nicht nur den Bereich, der gezogen wird. Wenn ich das UI-Elemente zu zeichnen verwenden, ist es neu gezeichnet für jedes Oberflächenelement. Kann dies effizienter gemacht werden?
@Override
protected void onDraw(Canvas canvas) {
//TODO: Reduce the burden from multiple drawing
Bitmap bitmap=Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Config.ARGB_8888);
Canvas offscreen=new Canvas(bitmap);
super.onDraw(offscreen);
//Then draw onscreen
Paint p=new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DARKEN));
canvas.drawBitmap(bitmap, 0, 0, p);
}
Wird nicht zu viele Garbage Collection erstellt, wenn neue Objekte in der Zeichenmethode erstellt werden? – Srin