2015-06-16 11 views
15

Sto usando animatori (ObjectAnimator) animare alcune proprietà (scala, rotazione) di vista.Come reimpostare la visualizzazione allo stato originale dopo aver usato gli animatori per animarne alcune proprietà?

La vista di destinazione si anima correttamente quando ObjectAnimators è impostato su di esso.

Ma v'è un requisito per ottenere aggiunto vista la posizione originale (reset) dopo un po '.

Ho provato a cancel() l'animatore ma annulla solo l'animazione e non ripristina la visualizzazione.

Soluzione possibile: creazione di un altro animatore che fa esattamente l'opposto dell'animatore iniziale.

C'è un altro modo per reimpostarlo?

+0

è necessario ripristinare la stessa animazione? come fadein-fadeout? – pskink

+0

Ho impostato la durata. una volta completato, voglio ripristinarlo allo stato originale non analizzato come era prima dell'animazione. Ho bisogno della stessa implementazione che si verifica con l'animazione della vista quando abbiamo fillEnabled = false. – Napolean

+1

prova quindi interpolatore personalizzato, qualcosa come CycleInterpolator – pskink

risposta

-1

Intendi interrompere un'animazione in esecuzione? In tal caso, chiama clearAnimation() per rimuovere le animazioni dalle viste che hai chiamato startAnimation(); Se ciò che intendi è ripristinare la vista al suo aspetto originale dopo che l'animazione è finita, sempre setFillAfter(false); alle animazioni.

+1

Voglio dire resettare la vista alla posizione non animata com'era prima di applicare gli animatori. clearAnimation() non funziona. Inoltre è PropertyAnimation non usuale visualizzazione animazioni. – Napolean

0

Ho incontrato lo stesso problema, perché ho animare l'uso vista ViewPropertyAnimator, addView() e removeView() ancora e ancora per non creare nuova vista, ma la vista può essere spettacolo, ancora una volta, quando si rimuove la vista, si chiama addview() , non è uno spettacolo, ma si vede che la visibilità è visiable e si può anche chiamare animationListener. è strano.