Override onDraw () oder zeichnen ()?
Mein Projekt basiert auf einer surfaceView und bis jetzt habe ich alle meine rendering in onDraw die ich bin überschreiben. Alles schien in Ordnung zu sein.
Jedoch, ich habe soeben mein SDK und jetzt gibt es mir eine Fehlermeldung sagt mir:
Verdächtige Methode nennen; sollte Sie wohl nennen "ziehen" statt "onDraw"
Könnte jemand bitte erklären Sie den Unterschied zwischen diesen beiden?
Ich habe einige ähnliche Fragen rund um die net, aber ich habe nicht gefunden, eine Erklärung, die ich verstehe.
Dank
InformationsquelleAutor der Frage Zippy | 2013-02-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
SurfaceView.draw() im Grunde fordert Blick.draw(); Wenn Sie möchten, um Ihre Zeichnung zu implementieren, sollte man es in Blick.onDraw(), die für Sie zu implementieren, die auch sagt, dass im source-code Kommentare.
Als für den Unterschied zwischen Ihnen:
draw():
onDraw() ist leer. Seine für Sie zu implementieren.
InformationsquelleAutor der Antwort wtsang02
Ich habe versucht, die Reinigung mein Projekt und es hat das problem zu lösen. Versuchen Sie es.
InformationsquelleAutor der Antwort KarenAnne
Habe das problem das ich seit je.
Ich handle es so:
1) Deklarieren Sie eine Methode wie die folgende.
2) Jetzt können Sie die onDraw () - Methode:
Können Sie rufen Sie die drawTheView () - Methode von überall Sie wünschen und rufen Sie die onDraw () - Methode auf diese Weise, ohne immer die Fehlermeldung...
Ich denke, das ist eine praktische Art und Weise.
InformationsquelleAutor der Antwort friiky
Beachten Sie, dass im Falle der Zeichnung überschreiben draw() und ruft super.zeichnen wird oft verwendet, wenn eine ViewGroup ziehen will Inhalte über Ihre untergeordneten Ansichten. Inhalt gezeichnet onDraw erscheint unter den Kindern.
InformationsquelleAutor der Antwort paynd
Als friiky sagte
@SuppressLint("WrongCall")
behoben mein problem. Aber es muss vor den Namen der Methode, nicht die oben.Was ich gemacht habe, setzen Sie mit der Maus über den Fehler-code mit der rechten Maustaste und wählen Sie
Add @SuppressLint("WrongCall")
InformationsquelleAutor der Antwort Dody Rachmat Wicaksono
onDraw
gibt Ihnen eine Leinwand zum zeichnen auf dem Bildschirm.draw()
können Sie manuell ziehen Sie eine Leinwand, auf dem Bildschirm (Sie müssen die Leinwand selbst).InformationsquelleAutor der Antwort hwrdprkns