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)?
Odpowiedz
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);
}
}
Działa z ObjectAnimatorem, ale jak możemy zatrzymać/wznowić ObjectAnimatorSet? – Deven
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? –
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) –
właściwie to pytanie jest duplikatem tego .. za link jednak – Bazinga
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. –