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