我知道ObjectAnimator对象上的暂停和恢复方法仅适用于API:19。然而,既然我,也有一半的Android用户没有这个API,是否有替代方法可以使您的动画暂停并从相同状态恢复而不是从头开始?任何帮助都将不胜感激。
我知道ObjectAnimator对象上的暂停和恢复方法仅适用于API:19。然而,既然我,也有一半的Android用户没有这个API,是否有替代方法可以使您的动画暂停并从相同状态恢复而不是从头开始?任何帮助都将不胜感激。
在我的项目中,我需要制作旋转动画(可以暂停并从相同或结束位置恢复),我的解决方法是获得动画器的当前时间(当动画结束或者我点击暂停时),接着在启动动画之后,使用 ObjectAnimator 类的 "setCurrentPlayTime(带有结束时间)" 方法来设置时间。我使用 getCurrentPlayTime() 来获取当前时间,并使用 ObjectAnimator 类的 setCurrentPlayTime() 方法来设置时间。
参考资料: 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);
}
}