2010-12-12 7 views
3

Ich habe eine costum-Ansicht erstellt, und auf der onDrawMethod ich habe begonnen, einige Dinge zu zeichnen. Ein paar Rezepte, Zeilen und ein Text.Android Canvas Zeichnung Text und ändern Sie den Text danach

canvas.drawText("Hello",150,150, paint); 

Jetzt möchte ich diesen Text nach einem OnTouchEvent ändern.

Mein Problem ist, dass ich nicht weiß, wie man den alten Text entfernt. Im Moment überlappt mein zweiter Text, der nach dem TouchEvent angezeigt wird, mit meinem alten Text. Soll ich meine Lochansicht mit dem neuen Text neu zeichnen?

Antwort

3

Normalerweise würden Sie die gesamte Ansicht neu zeichnen, wenn eine Menge Dinge gehen, aber in diesem Szenario können Sie einfach eine Box mit der gleichen Farbe wie der Hintergrund über den alten Text zeichnen und dann den neuen Text darüber anzeigen .

Wenn Sie jedoch ein Hintergrundbild haben, wäre es einfacher, einfach die gesamte Leinwand neu zu erstellen.

+0

Ok, Danke! :) – FireDragon

+0

Ein Canvas ist nur eine Bitmap. Was immer du daraus ziehst, ist permanent. Es gibt Möglichkeiten, damit umzugehen, aber die meisten Implementierungen zeichnen nur die gesamte Zeichenfläche bei jedem Durchgang neu. Sie können auf zwei Bitmap-Objekte zeichnen, die dann jedes Mal in der Reihenfolge auf die Leinwand gezeichnet werden, wodurch Sie effektiv einen "Ebenen" -Ansatz erhalten. – methodin