在API小于19(Android)中暂停/恢复动画?

时间:2014-06-07 02:14:38

标签: android api animation objectanimator

我意识到objectanimator对象的暂停和恢复方法仅适用于API:19。但是,既然我,也没有一半的Android用户都有这个API,有没有办法让你的动画暂停,然后从同一状态恢复,而不是从头开始?任何帮助将不胜感激。

1 个答案:

答案 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);
    }
}