gpt4 book ai didi

android - 在第二次启动 ObjectAnimator 之前删除默认延迟

转载 作者:行者123 更新时间:2023-11-29 01:20:28 28 4
gpt4 key购买 nike

我正在使用 ObjectAnimator 滚动 Horizo​​ntalScrollView(左 -> 右 -> 左)。因此,结果应该是从一侧无限滚动到另一侧。

问题 是在我开始向右 -> 左设置动画后会有大约 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();

最佳答案

您是否尝试过将线性插值器应用于您的动画?

默认插值器是非线性的,因此可能会造成延迟。应用它:

animRight.setInterpolator(new LinearInterpolator());
animLeft.setInterpolator(new LinearInterpolator());

关于android - 在第二次启动 ObjectAnimator 之前删除默认延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37073609/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com