2011-09-21 2 views
8

Cercando di cambiare l'indicatore da un elemento di sovrapposizione ho notato che setMarker() rende l'elemento non visibile. Ecco il codice di esempio.Android OverlayItem.setMarker(): modifica l'indicatore per un elemento

//Create new marker 
Drawable icon = this.getResources().getDrawable(R.drawable.marker); 

//Set the new marker to the overlay 
overlayItem.setMarker(icon); 
+0

hai trovato una soluzione per questo? Sto affrontando lo stesso problema. chiamare setMarker() con un drawable specifico rende l'icona invisibile ... – MobileCushion

+1

Devi specificare il rettangolo di delimitazione usando 'setBounds()' – slybloty

+1

che funziona davvero, dovresti rispondere alla domanda;) – MobileCushion

risposta

11

Un rettangolo di delimitazione deve essere specificato per il Drawable:

//Create new marker 
Drawable icon = this.getResources().getDrawable(R.drawable.marker); 

//Set the bounding for the drawable 
icon.setBounds(
    0 - icon.getIntrinsicWidth()/2, 0 - icon.getIntrinsicHeight(), 
    icon.getIntrinsicWidth()/2, 0); 

//Set the new marker to the overlay 
overlayItem.setMarker(icon); 
0

credo che questo dovrebbe funzionare:

public void addOverlay(final OverlayItem overlay) 
    { 
     creditOverlay.add(overlay); 
     populate(); 
     boundCenter(customMarker); 
    } 

Dovrete chiamare boundCenter o boundCenterBottom, mentre l'aggiunta di sovrapposizione nella lista delle mappe di sovrapposizione. In SetMarker() è sufficiente impostare il creatore personalizzato.

+0

Ciò farà sì che tutti gli elementi usino lo stesso indicatore, a meno che il metodo non sia cambiato in: 'addOverlay (OverlayItem, Drawable) – slybloty