2011-08-19 4 views
0

J'essaie d'ajouter une superposition à la vue de la carte telle qu'elle est décrite here. Tout fonctionne comme prévu (même si l'événement OnTap est déclenché) sauf le fait que les marqueurs restent invisibles. j'ai modifié une méthode onTap ajoutant la ligneLes marqueurs des éléments de superposition restent invisibles sur MapView

dialog.setIcon(item.getMarker(0)); 

Maintenant marqueurs deviennent visibles après coller tout élément (i ai deux éléments de la superposition et j'utilise le même étirable en tant que marqueur pour les deux). Lorsque j'allume l'appareil (entraînant le redessin de la carte), les marqueurs redeviennent invisibles. J'utilise Samsung Galaxy p1000 avec Android 2.2. Des idées?

Répondre

1

Je me souviens qu'il y avait quelques erreurs dans ce tutoriel.

Tout d'abord le constructeur HelloItemizedOverlay qui prend un contexte doit changer pour

public HelloItemizedOverlay(Drawable defaultMarker, Context context) { 
    // super(defaultMarker); - REPLACE THIS WITH LINE BELOW 
    super(boundCenterBottom(defaultMarker)); 
    mContext = context; 
} 

et le contexte doit être passé dans de l'autre classe

HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, this); 

Vous ne devriez pas avoir besoin d'utiliser la 'getMarker' changez vous décrit.

+0

Cela a fonctionné. Merci. Mais j'avais besoin d'utiliser un marqueur personnalisé pour chaque item, donc j'ai changé la méthode 'createItem (int)' en 'protected OverlayItem createItem (final int i) { \t \t OverlayItem item = items.get (i); \t \t Drawable drawable = item.getMarker (0); \t \t if (étirable! = Null) { \t \t \t int w = drawable.getIntrinsicWidth(); \t \t \t int h = drawable.getIntrinsicHeight(); \t \t \t drawable.setBounds (0, 0, w, h); \t \t \t item.setMarque (traitable); \t \t} \t \t Renvoyer l'élément; \t} ' – alekz

Questions connexes