2014-06-07 30 views
6

Zdaję sobie sprawę, że metody pauzy i wznowienia na obiektach obiektowych są dostępne tylko dla API: 19. Jednak ponieważ ani ja, ani połowa użytkowników androida nie ma tego API, czy istnieje alternatywa, aby skłonić animację do zatrzymania, a następnie wznowić od tego samego stanu zamiast od początku? Każda pomoc będzie wielce ceniona.Pauza/Wznowienie animacji w API mniej niż 19 (Android)?

+0

możliwe duplikat [? Jak wznowić i wstrzymać ObjectAnimator w Android API do poziomów poniżej 19] (http://stackoverflow.com/questions/25231707/how- to-resume-and-pause-objectanimator-in-android-for-api-levels-below-below-19) –

+0

właściwie to pytanie jest duplikatem tego .. za link jednak – Bazinga

+0

Nie ma negatywnej konotacji w oznaczaniu pytanie "duplikat", przynajmniej o ile rozumiem. Z drugiej strony, SO zachęca nas do wybrania duplikatu przez * odpowiedzi *, dlatego moim wyborem było umieszczenie znacznika dla tego, który otrzymał odpowiedź wcześniej. –

Odpowiedz

12

W moim projekcie musiałem zrobić obracania animacji (która będzie przerwa i niż CV z tej samej pozycji/koniec), a ja rozwiązać go poprzez uzyskanie aktualnego czasu animatora (gdy animacja kończy/po kliknięciu pauzy), a następnie po uruchomieniu animatora ustawiam "setCurrentPlayTime (z czasem zakończenia)". Do uzyskania aktualnego czasu używam getCurrentPlayTime(); i do ustawienia czasu używam setCurrentPlayTime() klasy ObjectAnimator.

Referencje: http://developer.android.com/reference/android/animation/ValueAnimator.html#setCurrentPlayTime(long) http://developer.android.com/reference/android/animation/ValueAnimator.html#getCurrentPlayTime()

private ObjectAnimator mObjectAnimator; 
private long mAnimationTime; 

private void stopAnimation() { 
    if(mObjectAnimator != null) { 
     mAnimationTime = mObjectAnimator.getCurrentPlayTime(); 
     mObjectAnimator.cancel(); 
    } 
} 

private void playAnimation() { 
    if (mObjectAnimator != null) { 
     mObjectAnimator.start(); 
     mObjectAnimator.setCurrentPlayTime(mAnimationTime); 
    } 
} 
+0

Działa z ObjectAnimatorem, ale jak możemy zatrzymać/wznowić ObjectAnimatorSet? – Deven

+0

Witaj NikolaDev, próbowałem implementacji dostarczonego rozwiązania po anulowaniu pauzy w animacji, ale kiedy zaczynam, a następnie ustawię opcję currentplaytime restartu animacji, masz pojęcie, co może być przyczyną tego? –