2013-02-28 6 views
32

Sto aggiungendo Marker default GoogleMap seguente modo:Mostra sempre mappa contrassegno del titolo in Android

GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.editMapMap)).getMap(); 

MarkerOptions markerOptions = new MarkerOptions(); 
markerOptions.position(currentLocation.getCoordinate()); 
markerOptions.title(Utils.getLocationString(currentLocation.getCoordinate())); 
markerOptions.snippet("Blah"); 

locationMarker = map.addMarker(markerOptions); 
locationMarker.setDraggable(true); 

Come posso fare marcatore sempre mostrare il titolo e snippet senza tocco? Mi piacerebbe anche disabilitarli nascondendoli al tatto.

risposta

77

E 'molto facile:

locationMarker.showInfoWindow(); 
3

Proprio return false per onMarkerClickListener, se si torna vera mostra il infoWindow.

Per nascondere titolo quando si clicca sul marcatore:

map.setOnMarkerClickListener(this); 
... 

@Override 
public boolean onMarkerClick(Marker arg0) {  
    Log.i(TAG,"marker arg0 = "+arg0);    
    return false; 
} 

Se torniamo vero titolo sarà di visualizzazione, altrimenti se torniamo falso titolo non verrà visualizzato.

+0

è possibile per google maps v2? sto tornando falso ma il pennarello mostra ancora il titolo ... – Ricky

+0

sì. Funziona per V2. Ho provato solo per la v2. Un'altra alternativa è lì, cioè mettere il titolo come stringa vuota. io "". Ma non va bene – sandeepmaaram

3

Esistono due metodi per mostrare e nascondere i marcatori. Il valore di ritorno booleano impedisce semplicemente che si verifichi il comportamento predefinito (falso) o che si verifichi (true). In altre parole, informa il sistema se hai consumato l'evento o meno. Vedi Google API Reference.

private GoogleMap.OnMarkerClickListener onMarkerClickedListener = new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker) { 
     if (marker.isInfoWindowShown()) { 
      marker.hideInfoWindow(); 
     } else { 
      marker.showInfoWindow(); 
     } 
     return true; 
    } 
}; 

mGoogleMap.setOnMarkerClickListener(onMarkerClickedListener); 
2

utilizzare showInfoWindow() e aggiungere un indicatore come di seguito.

Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text")); 
marker.showInfoWindow(); 
Problemi correlati