J'ai une classe d'activité MapImageViewer qui a des méthodes pour vérifier l'emplacement des téléphones GPS. Cette activité appelle ensuite une vue personnalisée de la mienne appelée MapCanvas - où le constructeur prend la latitude et la longitude, puis trace un cercle vers les pixels correspondants sur une image d'une carte.onLocationChanged appelez la méthode onDraw dans ma vue personnalisée
Cela fonctionne bien, mais je me demande comment puis-je mettre à jour et appeler la méthode onDraw chaque fois que les coordonnées GPS changent? Je sais qu'il doit aller dans la méthode onLocationChanged..mais je ne suis pas sûr comment je peux passer les nouvelles valeurs de latitude et de longitude de là à ma classe de vue personnalisée.
Je ne vois pas comment appeler la méthode d'invalidation des vues (ou postInvalidate) fera quoi que ce soit. –
Il indique au système d'exploitation de redessiner la vue appelant ainsi la méthode onDraw() de la vue ainsi que toute autre préparation en coulisse que le système d'exploitation doit effectuer. invalider est comment vous forcez dessiner une vue. – DeeV
J'ai essayé de mettre cela dans ma méthode onLocationChanged et cela n'a pas fonctionné. MapCanvas = new MapCanvas (MapImageViewer.this, myMapImagePath, latitude, longitude); setContentView (mapCanvas); mapCanvas.invalidate(); –