Je travaille sur l'application android et je suis capable d'afficher plusieurs icônes sur la carte en utilisant ItemizedOverlay et j'ai également implémenté la méthode onTap (int index) de ItemizedOverlay pour afficher des informations spécifiques aux icônes dans un fenêtre requise.setFocus (overlayItem) de ItemizedOverlay ne fonctionne pas
Maintenant, je veux changer l'icône de la superposition sélectionnée lorsque l'utilisateur clique sur un autre coponent. J'appelle la méthode setFocus (OverlayItem) de ItemizedOverlay pour afficher une icône différente de superposition spécifique. il fonctionne correctement lorsque l'utilisateur appuie sur une surimpression spécifique mais ne change pas d'icône lorsque j'appelle la méthode setFocus (OverlayItem).
Des pointeurs? Quelle est la meilleure façon de modifier l'icône de la superposition sélectionnée dans mapView?
J'ai la méthode getMarker surchargée de ma classe OverlayItem personnalisée pour afficher différents marqueurs pour l'état différent de overlayItem. et je veux utiliser la méthode setFocus (OverlayItem) pour changer l'état de OverlayItem et aussi changer le marqueur lorsqu'il est sélectionné.
@Override
public Drawable getMarker(int stateBitset){
if(stateBitset==0){
icon = Util.getCategoryMapIcon(0);
icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0);
return icon;
}else {
icon = Util.getCategoryMapIcon(OverlayItem.ITEM_STATE_SELECTED_MASK);
icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0);
return icon;
}
}
ici Util.getCategoryMapIcon (0) est la méthode utilitaire pour revenir icône appropriée, cette méthode prend quelques paramètres que je l'ai enlevé pour faire cet exemple look simple.
et ci-dessous est le code pour changer l'état
Button leftNavigation = (Button) findViewById(R.id.left_navigation_button);
leftNavigation.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
OverlayItem item = searchResultsOverlay.get(index+1);
setFocus(item);
}
});
Toute aide sera très appréciée. Merci, Aamir
Toute chance avec cette réponse? N'hésitez pas à suivre. –
Merci Roman. Cela a très bien fonctionné. –