SetFocus (overlayItem) de ItemizedOverlay no funciona

Estoy trabajando en la aplicación android y puedo mostrar múltiples iconos en el mapa usando ItemizedOverlay y también he implementado método onTap (indexación) de ItemizedOverlay para mostrar información específica del icono en una ventana requerida.

Ahora, quiero cambiar el icono de la superposición seleccionada cuando el usuario haga clic en algún otro coponente. Estoy llamando setFocus (OverlayItem) método de ItemizedOverlay para mostrar el icono diferente de superposición específica. Funciona bien cuando el usuario pulsa en cualquier superposición específica pero no cambia el icono cuando llamo setFocus (OverlayItem) método.

¿Algún puntero? ¿Cuál es la mejor forma de cambiar de forma programática el icono de la superposición seleccionada en mapView?

He overriden el método de getMarker de mi clase de encargo de OverlayItem para exhibir diversos marcadores para el diverso estado de overlayItem. Y quiero usar el método setFocus (OverlayItem) para cambiar el estado de OverlayItem y también cambiar el marcador cuando se selecciona.

@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; } } 

Aquí Util.getCategoryMapIcon (0) es el método Utility para devolver el icono apropiado, este método toma algunos parámetros, que he eliminado para que este ejemplo parezca simple.

Y debajo es código para cambiar el estado

 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); } }); 

Cualquier ayuda será muy apreciada. Gracias, Aamir

En su código getMarker , intente devolver un StateListDrawable (que corresponde a <selector> en XML desplegable) que contiene un drawable predeterminado (sin estados) y un drawable con el estado android.R.attr.state_focused .

Vea una pregunta relacionada aquí: Selector de ListView de Android Color

  • ListView superpone otro diseño al desplazarse
  • Captura de captura de pantalla en el teléfono Android durante la reproducción de vídeo y vista previa de la cámara
  • Android: Combina dos vistas de imagen superpuestas en un bmp con la posición correcta
  • Creación de una ventana de superposición del sistema (siempre en la parte superior)
  • Diferentes marcadores con nombre en Google Android Map
  • ¿Posible superponer un botón encima de otro?
  • Superposición transparente GLSurfaceview en la vista existente en android?
  • Android - los estados de la superposición automática táctil / resaltado del estado de la imagen
  • Cómo crear un diseño de superposición en una vista de lista
  • Mostrar una superposición de "ayuda" en un diseño de Android
  • Dibujo de una línea / ruta en Google Maps
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.