12

我意识到 objectanimator 对象上的 pause 和 resume 方法仅适用于 API:19。但是,由于我和一半的 android 用户都没有这个 API,是否有替代方法可以让你的动画暂停然后从相同的状态恢复,而不是从头开始?任何帮助将不胜感激。

4

1 回答 1

21

在我的项目中,我必须制作旋转动画(这将是暂停,然后从相同/结束位置恢复),我通过获取动画师的当前时间(动画结束时/单击暂停时)解决了这个问题,然后,启动动画师后,我正在设置“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);
    }
}
于 2014-10-10T14:53:59.243 回答