Я понимаю, что методы паузы и возобновления для объектов objectanimator доступны только для API: 19. Однако, поскольку ни у меня, ни у половины пользователей Android нет этого API, есть ли альтернатива, позволяющая приостановить анимацию, а затем возобновить ее из того же состояния, а не начинать с самого начала? Любая помощь будет принята с благодарностью.
Приостановить / возобновить анимацию в API менее 19 (Android)?
comment
возможный дубликат Как возобновить и приостановить ObjectAnimator в Android для уровней API ниже 19?
- person Alex Cohn   schedule 31.03.2015
comment
на самом деле этот вопрос является дубликатом этого ... хотя спасибо за ссылку
- person Bazinga   schedule 05.04.2015
comment
По крайней мере, насколько я понимаю, обозначение дублирующего вопроса не имеет негативного смысла. С другой стороны, SO поощряет нас выбирать дубликат по ответам, поэтому я решил поставить маркер для того, на который был дан ответ ранее.
- person Alex Cohn   schedule 07.04.2015
Ответы (1)
В моем проекте мне пришлось сделать анимацию поворота (это будет пауза, а затем возобновление с той же / конечной позиции), и я решил это, получив текущее время аниматора (когда анимация заканчивается / когда я нажимаю на паузу), а затем, после запуска аниматора я устанавливаю "setCurrentPlayTime (со временем окончания)". Для получения текущего времени я использую getCurrentPlayTime (); а для установки времени я использую setCurrentPlayTime () класса ObjectAnimator.
Ссылки: 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);
}
}
person
nikolaDev
schedule
10.10.2014
Он работает с ObjectAnimator, но как мы можем приостановить / возобновить ObjectAnimatorSet?
- person Deven; 31.05.2017
Здравствуйте, NikolaDev, я попытался реализовать решение, которое вы предоставили для отмены паузы анимации, но когда я запускаю, а затем устанавливаю текущее время воспроизведения, перезапуск анимации вы знаете, что может быть причиной этого?
- person Z. Kiwan; 20.06.2017