2011-09-28 6 views
1

J'ai une image d'une carte et je veux tracer quelques points/marqueurs sur la carte. Ces marqueurs doivent être cliquables. J'ai utilisé une classe de vue personnalisée pour tracer les marqueurs à mes points requis. Les marqueurs sont tracés mais le problème est que soit le marqueur n'est pas cliquable, soit lorsque je mets onClick listener sur la vue personnalisée, l'image entière reçoit l'événement click (où que je clique sur l'image, onClick est appelé, mais je veux seulement cliquer sur le marqueur pour initier onClick). Quelqu'un pourrait m'aider avec ça?Comment faire une image chevauchée cliquable dans Android?

Répondre

0

Vous devez créer votre MapOverlay personnalisé et à l'intérieur mettez le code de la fonction. Dans ce code ci-dessus, remplacez la méthode OnTap.

public class MapOverlay extends ItemizedOverlay { 

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
private Context mContext; 

public MapOverlay(Drawable defaultMarker,Context context) { 
    super(boundCenterBottom(defaultMarker)); 
    mContext = context; 
} 

@Override 
protected OverlayItem createItem(int i) { 
    // TODO Auto-generated method stub 
    return mOverlays.get(i); 
} 

public void addOverlay(OverlayItem overlay) { 
    mOverlays.add(overlay); 
    populate(); 
} 

public void clearOverlay() { 
    mOverlays.clear(); 
    populate(); 
} 
@Override 
public int size() { 
    // TODO Auto-generated method stub 
    return mOverlays.size(); 
} 



@Override 
protected boolean onTap(int index) { 
    OverlayItem item = mOverlays.get(index); 
    AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 
    dialog.show(); 
    return true; 
} 

}

+0

Grand. Je vais essayer et vous laisser savoir @FMMobile Felipe Meneze. – Ashwin

+0

ItemizedOverlay est uniquement utilisé pour ajouter des éléments de superposition sur un MapView. Mais je n'utilise pas le MapView et tout ce que j'ai est juste une image. Je veux dessiner quelques petites images dessus et rendre ces petites images cliquables. – Ashwin

+0

Felipe Meneze J'ai essayé d'utiliser ci-dessus mais je ne pourrais pas utiliser la carte api. Je suis en quelque sorte en train de simuler des cartes en ayant une image de carte statique et des marqueurs de dessin à mes coordonnées requises, et j'ai réussi à le faire, en étendant la classe View nad à la méthode onDraw. Mais maintenant le problème est que les marqueurs ne sont pas cliquables. Une touche n'importe où sur la carte appelle la méthode onTouch. – Ashwin