2016-08-03 22 views
0

Im Grunde versuche ich, eine bereits gezeichnete Leinwand zu ändern. Es gibt einen Teil davon, der sich aufgrund von Benutzereingaben ändert. Das erneute Zeichnen der gesamten Zeichenfläche benötigt zu viel Zeit. Daher habe ich daran gedacht, eine separate Zeichenfläche mit derselben Ansicht und demselben Halter zu erstellen und nur das Element zu zeichnen, das sich oben auf der Zeichenfläche ändert. Die Bitmap, die ich darüber zeichne, scheint die vorher gezeichnete Leinwand vollständig auszublenden. Irgendwie in der Nähe?Android: Gibt es eine Möglichkeit, mit einem sekundären Zeichenbereich über einen vorhandenen Zeichenbereich zu zeichnen?

Um eine einfachere Frage zu stellen, muss ich in der Lage sein, über eine bestehende Ansicht (in diesem Fall Oberflächenansicht) zu zeichnen, ohne sie zu löschen.

Antwort

0

Das macht nicht viel Sinn, da die Canvas Instanz eine einzelne ist, die von oben nach unten durch die View-Hierarchie propagiert wird. Wenn Sie nur ein Teil Ihrer benutzerdefinierten Ansicht aktualisieren möchten, können Sie Methoden wie view.invalidate(Rect) oder view.invalidate(left, top, right, bottom) verwenden.

+0

Grundsätzlich muss ich nur in der Lage sein, über eine vorhandene Ansicht zu zeichnen, ohne den Inhalt darunter zu löschen. – jagrakye

+0

Sie können eine zusätzliche Ansicht erstellen, um die vorhandene zu überlagern. Dies kann erreicht werden, indem ein "FrameLayout" oder ein "RelativeLayout" verwendet wird, um beide zu verbinden. Alles, was Sie tun müssen, ist, auf diese neue Ansicht zu zeichnen. –

+0

Ah ok, vielleicht überlege ich es. Vielen Dank! – jagrakye