我意识到objectanimator对象的暂停和恢复方法仅适用于API:19。但是,既然我,也没有一半的Android用户都有这个API,有没有办法让你的动画暂停,然后从同一状态恢复,而不是从头开始?任何帮助将不胜感激。
答案 0 :(得分:17)
在我的项目中,我必须制作旋转动画(这将是暂停而不是从相同/结束位置恢复),我通过获取动画师的当前时间来解决它(当动画结束时/当我点击暂停时)并且,在启动动画师之后,我设置了" 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);
}
}