2012-03-26 2 views
0

Ich zeichne Linien (freie Zeichnung) auf der Leinwand durch das Speichern von Punkten in einer Warteschlange und dann das Malen der gesamten Warteschlange auf der Leinwand. Die Leistung verschlechtert sich, wenn die Warteschlange groß wird, da ich die gesamte Menge der Punkte vom Start der Warteschlange an neu male.Android Update Canvas (Auch alten Bildschirm behalten)

Gibt es einen Weg, kann ich nur die neuen Daten auf der Leinwand, ohne die Notwendigkeit, die gesamte Warteschlange neu zeichnen, genau wie update() -Methode in Java Applets?

Danke.

Antwort

-2

Verwenden Sie dies, um Ihre Leinwand zu sperren, die Daten zu schreiben und dann die Daten zu entsperren und zu veröffentlichen.

Canvas c = holder.lockCanvas(); 
// Your code here 
holder.unlockCanvasAndPost(c); 
+0

lesen Sie die Frage vor der Beantwortung – droidev

2

Ich habe eine ähnliche Sache, sondern Kreise zeichnen. Grundsätzlich erfolgt die Zeichnung auf einem Offscreen-Bitmap, das dann auf dem System-Canvas gezeichnet wird. Siehe this paste

+0

Vielen Dank für dieses Stück Code! – Rotem