现在,我通过检查进度何时达到100来检测ValueAnimator的结尾。
//Setup the animation
ValueAnimator anim = ValueAnimator.ofInt(progress, seekBar.getMax());
//Set the duration
anim.setDuration(Utility.setAnimationDuration(progress));
anim.addUpdateListener(new AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation)
{
int animProgress = (Integer) animation.getAnimatedValue();
if ( animProgress == 100)
{
//Done
}
else
{
seekBar.setProgress(animProgress);
}
}
});
这是正确的方法吗?我通读了文档,并在完成时找不到任何类型的监听器或回调。我尝试使用
isRunning()
,但效果不佳。 最佳答案
您可以执行以下操作:
ValueAnimator anim = ValueAnimator.ofInt(progress, seekBar.getMax());
anim.setDuration(Utility.setAnimationDuration(progress));
anim.addUpdateListener(new AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation)
{
int animProgress = (Integer) animation.getAnimatedValue();
seekBar.setProgress(animProgress);
}
});
anim.addListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
// done
}
});
anim.start();
关于android - 检测ValueAnimator完成的时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20233558/