2015-05-27 26 views
8

Ho una barra di avanzamento vista simili:Android: come creare una barra di avanzamento orizzontale usando Interpolator?

<ProgressBar 
    android:id="@+id/progress_bar" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:max="100"/> 

Dura 3 secondi, così come utilizzare interpolatore a rendere uniformemente aggiornamento?

ObjectAnimator animation = ObjectAnimator.ofInt(what_is_in_here?); 
animation.setDuration(3000); // second 
animation.setInterpolator(new DecelerateInterpolator()); 
animation.start(); 

Ho davvero apprezzato il vostro aiuto. Grazie mille in anticipo.

risposta

21

ho scoperto la soluzione:

progressBar = (ProgressBar) findViewById(R.id.progress_bar); 

ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 100, 0); 
animation.setDuration(3500); // 3.5 second 
animation.setInterpolator(new DecelerateInterpolator()); 
animation.start(); 

Ecco una spiegazione dettagliata:

creare un oggetto di animazione:

ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 100, 0); 
  • Progressbar: riferimento alla ProgressBar in lo schema;
  • "avanzamento": il nome della proprietà da animare;
  • 100: punto di partenza dell'animazione;
  • 0: punto finale dell'animazione.

e impostare un'interpolazione:

animation.setInterpolator(new DecelerateInterpolator()); 

È possibile utilizzare diversi interpolatori per la nostra animazione, come ad esempio:

  • LinearInterpolator: dove il tasso di variazione è costante .
  • DecelerateInterpolator: dove la velocità di modifica inizia rapidamente e quindi decelera.

  • AccelerateInterpolator: dove la velocità di modifica inizia lentamente e quindi accelera.

  • OvershootInterpolator: in cui la modifica si sposta in avanti e supera l'ultimo valore, quindi ritorna.

  • Per altri interpolatori controllare l'interfaccia android.view.animation.Interpolator.
+0

grande risposta! Semplice, pulito e comprensibile. Grazie! –

+0

bisogno di aiuto "avanzamento" è il nome della proprietà già definito o personalizzato? se già definisci cosa sono le liste predefinite –

Problemi correlati