public void move(Activity activity) {
moveLeft = ObjectAnimator.ofFloat(image, "translateX", -500);
moveLeft.setInterpolator(new LinearInterpolator);
moveLeft.setDuration(10000);
moveLeft.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
Log.d("Interpolator", " My interpolator is " + moveLeft.getInterpolator());
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
Log.d("Cancelled", "Animation has been abruptly cancelled.");
}
@Override
public void onAnimationRepeat(Animator animation) {
Log.d("Interpolator", " My interpolator is " + moveLeft.getInterpolator());
}
});
moveLeft.start();
}
}
当我运行move()
方法时,我在动画开始时和动画结束时检查了插值器。
我检查时确实证实是LinearInterpolator
。但是当我运行它时,它会像AcceleratingInterpolator
一样移动。 (开始时很慢,然后移动得非常快。)
如果我使用LinearInterpolator
,为什么它不会以线性速度移动?
我是否错误地使用了ObjectAnimator
?或者我是否设置了插补器错误,或者我是否必须更新布局或什么?
更新:
我已经确认内插器工作正常。但LinearInterpolator似乎并没有让它以恒定的速度运行。我用弹跳插补器对它进行了测试,效果非常好。