我有一个objectAnimator
final ObjectAnimator anim = (ObjectAnimator) AnimatorInflater
.loadAnimator(getActivity(), R.anim.flip);
anim.setTarget(tvDebitAmount);
anim.setDuration(3000);
anim.start();
我需要这个在循环中工作,有一些差距。我的意思是,一旦这个动画结束,我需要在等待4000毫秒后再次调用anim.start。
我尝试将它置于无限循环中,并在anim.start()之后放入thread.sleep()。它不起作用(整个屏幕没有响应)。我怎样才能让它等待/睡觉?
答案 0 :(得分:4)
Thread.sleep()
阻止当前线程,即UI线程,你不希望这样。
要使动画以您想要的方式工作,只需将其包装在运行4000毫秒的动画集中,而集合中的实际动画仍然只需3000毫秒。然后将动画重复模式设置为RESTART
并重复计数到INFINITE
。
答案 1 :(得分:1)
我建议您使用ScheduledThreadPoolExecutor
或者使用Timer
。因此它在单独的线程中工作而不会干扰主线程。获取有关计时器here的示例。