2
我在滾動HorizontalScrollView
使用ObjectAnimator
(左→右→左)。因此,結果應該是從一邊到另一邊的無限滾動。在第二次啓動ObjectAnimator前刪除默認延遲
問題是在我開始右鍵 - >左鍵動畫之後有一些延遲,例如1秒。什麼導致這種行爲?
我創建2個動畫,並開始一個接一個(如果你知道更好的解決方案,它的讚賞):
final ObjectAnimator animRight = ObjectAnimator.ofInt(hScrollView, "scrollX", hScrollView.getRight());
animRight.setDuration(SCROLL_DURATION);
final ObjectAnimator animLeft = ObjectAnimator.ofInt(hScrollView, "scrollX", 0);
animLeft.setDuration(SCROLL_DURATION);
animRight.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {}
@Override
public void onAnimationEnd(Animator animation) {
animLeft.start();
}
@Override
public void onAnimationCancel(Animator animation) {}
@Override
public void onAnimationRepeat(Animator animation) {}
});
animLeft.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {}
@Override
public void onAnimationEnd(Animator animation) {
animRight.start(); //delay occurs here
}
@Override
public void onAnimationCancel(Animator animation) {}
@Override
public void onAnimationRepeat(Animator animation) {}
});
animRight.start();
請參閱文檔'ObjectAnimator'^F重複 – pskink
是的,我知道重複。但是有一個問題需要建立完整的動畫路徑,即右 - 左 - 右,所以它應該是光滑的 – AnZ
只需使用右插補器,就像'CycleInterpolator' – pskink