2010-07-02 11 views
24

Ho un'immagine estraibile. Ruotro l'immagine come una barra di avanzamento.Come aumentare la velocità di rotazione in Android?

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" 
android:toDegrees="360" android:drawable="@drawable/spinner_white_48" /> 

voglio aumentare la velocità di rotazione? per quello, quale attributo devo usare?

risposta

2

Impostare duration e repeatCount per l'esecuzione dell'animazione.

+1

Cosa succede se il repeatCount dovrebbe essere 0, in modo che ruoti per sempre (utilizzato per la ProgressBar, in "indeterminateDrawable")? La durata non sembra fare nulla in questo caso ... –

1
android:duration="required value in ms" 
+0

questa proprietà è ora disponibile nel tag di rotazione –

99

L'impostazione della durata e/o del conteggio di ripetizioni non mi ha aiutato con un'animazione ProgressBar indeterminata. Ho dovuto aumentare le toDegrees averlo effettuare ulteriori loop:

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/ic_indeterminate_progress" 
    android:duration="1" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="1080" /> <!--1080 is 3 loops instead of 1 in same amt of time--> 
+0

Diventa salta molti gradi alla ripetizione di animazione quando lo impostiamo su un valore come 0 a multiplo non intero di 360 (per esempio 540) gradi. c'è un workaound per questo –

20

Secondo this link:

La velocità di rotazione della barra di avanzamento indeterminata è fissata a una giro ogni 4 secondi, cambiando la l'attributo duration nel codice XML drawable non ha alcun effetto. Se si preferisce accelerarlo, è possibile modificare le toDegrees attribuiscono a multipli di 360:

  • 720 fa un giro in 2 secondi
  • 1080 fa un giro in 1.33 secondi
  • 1440 fa un giro in 1 secondo

Inoltre, si può semplicemente utilizzare indeterminateDuration per il ProgressBar.

2

aggiungere nel codice per progress.xml

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fromDegrees="0" 
    android:toDegrees="1080" /> <!--1080 is 3 loops instead of 1 in same amt of time--> 
+0

Ciao, potresti includere una descrizione del problema? Grazie –

Problemi correlati