Ist es eine gute Programmierung, invalidate () in onDraw () aufzurufen?

8
  1. Ist es eine gute Programmierpraxis, invalidate() in onDraw() ?
  2. aufzurufen?

Nach meinem Verständnis ist der Aufruf von invalidate() in onDraw() teuer und wird nicht benötigt, wenn keine Änderung an der Zeichenfläche vorgenommen wird.

  1. Ist invalidate() äquivalent zu einer asynchronen Version von onDraw() ?

Nach meinem Verständnis sind sie gleichwertig. Korrigiere mich, wenn ich falsch liege. Danke.

    
hsbgowd 15.02.2011, 03:44
quelle

1 Antwort

17

Rufen Sie invalidate() nur dann auf, wenn sich Ihre Daten geändert haben und neu gezeichnet werden müssen. Das machen Sie normalerweise nicht in onDraw() , weil Sie zu diesem Zeitpunkt Ihre aktuellen Daten zeichnen, nicht ändern. (Es gibt einige Fälle, in denen Sie dies tun möchten, z. B. zum Ausführen von Animationen, aber im Allgemeinen würde ich stattdessen eine verzögerte Nachricht zur Steuerung Ihres eigenen Zeitplans für die Aktualisierungen empfehlen.)

    
hackbod 15.02.2011, 04:16
quelle

Tags und Links