8

Voglio ottenere un'animazione marcatore come l'animazione GIF. Ho due immagini che dovrebbero lampeggiare contemporaneamente. Non ho trovato nulla che possa acheive questo in Android. Sto cercando di fare è, creando un gestore che viene eseguito ogni 1 secondo, e sto cercando di impostare l'icona per il marcatore. Ma non funziona. Per favore guidami nella giusta direzione.Animazione tipo GIF per marker in google map api ANDROID

il mio codice al momento è il seguente.

Handler handler = new Handler(); 
    Boolean marker_color_bool = true; 

//adding marker and sending the marker instance to marker_animation() method where handler is called. 

MarkerOptions marker = new MarkerOptions() 
       .title(delivery_center_name) 
       .snippet("This is the " + delivery_center_name + " location") 
       .position(location) 
       .icon(BitmapDescriptorFactory.fromResource(R.drawable.red_marker)); 

     google_map.addMarker(marker); 

     marker_animation(marker); 

marker_animation() metodo

private final int ONE_SECONDS = 1000; 
public void marker_animation(final MarkerOptions marker) { 

    handler.postDelayed(new Runnable() { 
     public void run() { 

      Log.e("running",""+marker_color_bool); 

      if(marker_color_bool == true) 
      { 

       marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.green_marker)); 
       marker_color_bool = false; 
      } 
      else 
      { 
       marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.red_marker)); 
       marker_color_bool = true; 
      } 

      handler.postDelayed(this, ONE_SECONDS); 
     } 
    }, ONE_SECONDS); 
} 

questo approccio doesnt mi work..Please aiutare quello che sto facendo male.

+0

Sarebbe meglio se le persone fornissero un motivo nel commento sul perché la domanda è stata respinta. In modo che io e le altre persone possiamo capire e imparare come fare una domanda in modo efficace. Grazie .. :-) –

+0

puoi pubblicare la tua soluzione a questa risposta? –

+0

@PabloCegarra Sto usando Marker invece delle opzioni dei marker. Marker = new Marker(). e ha anche setIcon che cambia icona nel gestore dell'animazione dal codice precedente. –

risposta

5

Please help me quello che sto facendo male

si sta modificando un oggetto che non è più in uso. Una volta chiamato addMarker(), l'oggetto MarkerOptions non ha più significato, tuttavia questo è ciò che si sta modificando tramite la logica postDelayed().

(a proposito, non hai bisogno di un Handler, come postDelayed() è disponibile su qualsiasi View)

addMarker() restituisce un Marker. Avrai bisogno di lavorare con quello Marker per influenzare le tue modifiche, tramite setIcon().

Inoltre, poiché le bitmap non cambiano, suggerisco di memorizzare nella cache i due oggetti BitmapDescriptor anziché ricrearli su ogni passaggio.

+1

sì, finalmente l'ho risolto usando un marker invece di markeroptions, e anche marker.seticon. –

+0

Voglio un indicatore di caricamento all'interno di questa immagine marcatore e l'immagine del mio marker è un'immagine personalizzata, come posso fare? – neena

+0

@neena: Se con "indicatore di caricamento" si intende qualcosa di animato, che non è supportato. – CommonsWare