检测ValueAnimator完成的时间 [英] Detecting when ValueAnimator is done
本文介绍了检测ValueAnimator完成的时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
现在,我通过检查进度何时达到100来检测ValueAnimator的结尾.
Right now I am detecting the end of my ValueAnimator by checking when the progress has reached 100...
//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()
,但效果不佳.
Is this the correct way? I read through the docs and couldn't find any kind listener or callback for when it completes. I tried using isRunning()
but it didn't work as well.
推荐答案
您可以执行以下操作:
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();
这篇关于检测ValueAnimator完成的时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文