0

Comme nous le savons dans google maps android version 2, une fenêtre d'information personnalisée, est une vue qui convertit en une image. En fait, google une fois que vous retournez, vous convertissez la vue en une image puis la montre aux fenêtres d'information.Google Maps Version 2 - Mise à jour des fenêtres d'information

Mais je veux montrer des images téléchargeant d'Internet à mon infowindow. En fait, je veux que, avant que le téléchargement complet montre une barre de progression à mes infowindows et après les fenêtres d'information de mise à jour compeleted, par ce mécanisme comment je peux faire cela? Avoir un objet modèle qui contient un int pour la progression et un bitmap pour l'image réelle.

Répondre

2
  • Commencer une sorte d'opération d'arrière-plan démarrée (par exemple AsyncTask) pour télécharger l'image.
  • Mise à jour du modèle à partir de AsyncTask.onProgressUpdate.
  • Mettre à jour l'image du modèle à partir de AsyncTask.onPostExecute.
  • Avoir un observateur pour le modèle (voir Observer partern).
  • Si vous gardez AsyncTask (ou tout autre type de Thread dans Activity contexte, ne pas oublier de cancel et vous pouvez aussi sauter modèle d'observateur.
  • Enregistrer référence au marqueur montrant la fenêtre d'information à l'intérieur InfoWindowAdapter.getInfoWindow. Appelez-markerShowingInfoWindow.
  • Lorsque vous recevez une notification de mise à jour de progrès,

appel:

if (markerShowingInfoWindow != null && markerShowingInfoWindow.isShowingInfoWindow()) { 
    markerShowingInfoWindow.showInfoWindow(); 
} 

Pour forcer InfoWindowAdapter.getInfoWindow appelez et créez ViewGroup contenant ProgressBar et ImageView à partir de la progression et des valeurs d'image dans le modèle.

Comme toujours, traduisez ceci en monde C#.

Questions connexes