Sto lavorando all'applicazione Android e sono in grado di visualizzare più icone sulla mappa utilizzando ItemizedOverlay e ho anche implementato il metodo onTap (int index) di ItemizedOverlay per visualizzare informazioni specifiche dell'icona in un finestra richiestasetFocus (overlayItem) di ItemizedOverlay non funziona
Ora, voglio cambiare l'icona della sovrapposizione selezionata quando l'utente fa clic su un altro coponente. Sto chiamando il metodo setFocus (OverlayItem) di ItemizedOverlay per visualizzare diverse icone di overlay specifici. funziona perfettamente quando l'utente tocca un overlay specifico ma non cambia icona quando chiamo il metodo setFocus (OverlayItem).
Eventuali suggerimenti? qual è il modo migliore per cambiare l'icona della sovrapposizione selezionata in mapView?
Ho sovrascritto il metodo getMarker della mia classe OverlayItem personalizzata per visualizzare diversi indicatori per diversi stati di overlayItem. e voglio usare il metodo setFocus (OverlayItem) per cambiare lo stato di OverlayItem e anche cambiare il marcatore quando selezionato.
@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;
}
}
qui Util.getCategoryMapIcon (0) è il metodo di utilità per restituire l'icona appropriata, questo metodo richiede alcuni parametri, che ho rimosso per fare questo esempio un aspetto semplice.
e sotto è codice per modificare lo stato
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);
}
});
Qualsiasi aiuto sarà molto apprezzato. Grazie, Aamir
fortuna con questa risposta? Sentiti libero di seguirti. –
Grazie Roman. Ha funzionato molto bene. –