Quand il est nécessaire d'exécuter invalidate() sur un point de Vue?

Ma réponse à cette question vient d'être accepté, mais j'ai commencé à me demander quand exactement on doit invalidate() Vue et quand il n'est pas nécessaire?

Après un peu de réflexion j'en suis venu à la réalisation que c' devrait de travail plus ou moins comme ceci:

  • le dessin de "tout" se passe après onResume()
  • en temps "libres" des parties de l'écran peut être redessiné, mais seulement ceux qui ont été invalidated (et tout en dessous)

Il semblerait donc, si je change quelque chose après onResume() (par exemple, comme une réponse à un clic sur un bouton, je devrais invalidate() la changé View).

Cependant, de ce que scana dans cette question dit, il doit être plus complexe et cela dépend somethimes sur la méthode qu'on utilise.

E. g. si l'on utilise

lastClicked.setImageBitmap();

ou

lastClicked.setImageResource();

Donc, quand il est nécessaire d'exécuter invalidate() sur une Vue et comment ça marche vraiment ?

InformationsquelleAutor mjaskowski | 2012-05-18