实现动画以在所有机器上同样快速地运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现动画以在所有机器上同样快速地运行相关的知识,希望对你有一定的参考价值。
答案
唯一的方法是使用时间戳;天真和专业的方法在使用方式上有所不同。
天真的方法使用线程和Thread.sleep()
。专业方法使用定时器以特定间隔运行代码,并让定时器决定如何处理延迟和抖动。
您可以了解更多关于计时器的信息,查看课程Timer
和TimerTask
。 java.util.Timer.scheduleAtFixedRate(TimerTask, Date, long)
应该是一个好的开始。请注意,代码是在新线程中执行的,因此您需要使用常用工具将事件注入UI线程的队列中。
另一答案
我定期使用javax.swing.Timer
,它适用于一致的动画。你所要做的就是实现一个实现Frame
的类(你甚至可以使它成为你的Panel
或ActionListener
)。
计时器以构造函数中指定的间隔调用actionPreformed(...)
方法(如果需要,可以稍后调用),并且可以从Timer
间隔执行所有重绘。通常这涉及更新所需对象的状态,并在所涉及的repaint()
上调用Panel
。
请务必调用Timer
的start()
方法。这让我头疼不已!
以上是关于实现动画以在所有机器上同样快速地运行的主要内容,如果未能解决你的问题,请参考以下文章
在ViewPager上,在onPageSelected上的片段上启动动画
想要使用片段从导航抽屉活动移动到另一个屏幕,以在所有屏幕上显示抽屉