9

Desidero aggiungere un cerchio animato alla visualizzazione di Google Maps simile alla cerchia che vedi su questa immagine.API Android di Google Maps v2: visualizzazione del raggio di ricerca con l'aiuto di ValueAnimator

enter image description here

Il cerchio dovrebbe essere pulsando dal centro verso il massimo raggio che indica posizione corrente dell'utente e l'area di ricerca.

Ecco blocco di codice relativo

Circle circle = mMap.addCircle(new CircleOptions() 
    .center(new LatLng(lat, lon)) 
    .strokeColor(Color.CYAN).radius(1000)); 
    valueAnimator = new ValueAnimator(); 
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
     float animatedFraction = valueAnimator.getAnimatedFraction(); 
     circle.setRadius(animatedFraction * 1000); 
     circle.setStrokeWidth(1 + animatedFraction * 7); 
     } 
     }); 

Con questo codice sono in grado di vedere la corsa cerchio statico senza alcuna animazione solo.

Qualsiasi aiuto sarà apprezzato. Grazie in anticipo.

risposta

28

Semplicemente :)

final Circle circle = MAP.addCircle(new CircleOptions().center(EGYPT) 
      .strokeColor(Color.CYAN).radius(100)); 

    ValueAnimator vAnimator = new ValueAnimator(); 
    vAnimator.setRepeatCount(ValueAnimator.INFINITE); 
    vAnimator.setRepeatMode(ValueAnimator.RESTART); /* PULSE */ 
    vAnimator.setIntValues(0, 100); 
    vAnimator.setDuration(1000); 
    vAnimator.setEvaluator(new IntEvaluator()); 
    vAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); 
    vAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
      float animatedFraction = valueAnimator.getAnimatedFraction(); 
      // Log.e("", "" + animatedFraction); 
      circle.setRadius(animatedFraction * 100); 
     } 
    }); 
    vAnimator.start(); 
+1

Semplicemente funziona :) Grazie! – Juniper

+0

L'animazione funziona finché non verranno visualizzati i marcatori. Quando vengono mostrati i marcatori, l'animazione scompare. Non importa dove chiamo 'vAnimator.start();' non è più visualizzato ma allo stesso tempo posso vedere nel LogCat che sta elaborando. Hai qualche ipotesi per cui l'animazione non è visualizzata con i marcatori? – Juniper

+1

La mia cerchia ha un colore di riempimento, ma scompare quando è animata. Cosa dovrei fare? – DixieFlatline

Problemi correlati