0

我有一个 objectAnimator

final ObjectAnimator anim = (ObjectAnimator) AnimatorInflater
                .loadAnimator(getActivity(), R.anim.flip);
        anim.setTarget(tvDebitAmount);
        anim.setDuration(3000);
        anim.start();

我需要这个循环工作,有一些差距。我的意思是,一旦这个动画完成,我需要在等待 4000 毫秒后再次调用 anim.start。

我尝试将其置于无限循环中,并将 thread.sleep() 置于 anim.start() 之后。它不工作(整个屏幕没有响应)。我怎样才能让它等待/睡眠?

4

2 回答 2

4

Thread.sleep()阻止作为 UI 线程的当前线程,而您不希望这样。

要使动画按照您想要的方式工作,只需将其包装在一个运行时间长 4000 毫秒的动画集中,而该集中的实际动画仍然只需要 3000 毫秒。然后将动画重复模式设置为RESTART并将重复计数设置为INFINITE

于 2013-08-01T06:23:23.947 回答
1

我建议您使用ScheduledThreadPoolExecutor或使用Timer. 这样它就可以在单独的线程中工作而不会干扰主线程。在此处获取有关计时器的示例。

于 2013-08-01T06:23:09.587 回答