首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Canvas onDraw是否计时?

Canvas onDraw是否计时?
EN

Stack Overflow用户
提问于 2017-01-13 13:59:56
回答 1查看 378关注 0票数 0

我正在尝试创建一个类似于this one的逐帧弹跳球动画。

或者,在帧速率非常高的设备上,动画运行得很快,而在帧速率很低的设备上运行得很慢。

使用runnable是更好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-13 14:16:12

使用runnable是更好的方法吗?

使用runnable没有什么错。你的要求是在好的手机上运行60fps,在低端设备上运行较低的fps:

是Canvas onDraw timed吗?

目前,您的画布onDraw()必须每隔16ms触发一次才能获得60fps的动画。为了减少它,根据你的情况每32ms触发一次。

注意:

我们只能通过在画布视图上调用invalidate来触发onDraw方法。但我们不能100%确定您的所有失效将导致重新绘制。这是一些帧下降的地方,在这里和那里,将使您的动画失去光泽。

我的2点看法:

当您在画布上处理自定义视图时,使用值动画器执行重绘(无效)将使您可以灵活地应用任何类型的缓动功能。和一些有趣的文章来了解canvas是如何工作的,这样你就可以避免遗漏的帧。

https://hackernoon.com/android-draw-a-custom-view-ef79fe2ff54b#.vtdmbs95g

https://medium.com/dualcores-studio/make-an-android-custom-view-publish-and-open-source-99a3d86df228#.3jdi1pbt7

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41628272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档