Android自定义动画

时间:2015-06-19 21:00:52

标签: android animation android-canvas

我正在创建一个我需要动画的自定义微调器。旋转器由大约10个形状组成,我使用Canvas和Paths绘制。每个形状应单独设置动画,每个形状在单独的时间绘制。每隔一段时间就会绘制一个新形状,而其余形状仍在进行动画循环,因此您可以将一个形状设置为10,然后反转为0.

我现在通过在onDraw方法中绘制这些形状来实现这一点。每次使invalid()时都会调用onDraw,并且每40ms从一个带有postDelay()的递归方法调用invalidate()以获得所需的动画。这一切都有用,但是我可以看到CPU的使用急剧上升,大约10-15秒后整个事情就停止了。所以有些事情显然是错的。可能根本不是尝试动画的正确方法。

我想我的问题是 - 你认为出了什么问题?为什么?那么在画布上制作动画的正确方法是什么?

编辑:

CPU usage levels

EDIT2:

看起来我的大量CPU使用率来自重用Path对象。不确定原因,但是放弃重用对象并在onDraw方法之间重新创建它们已经大大提高了性能。在运行微调器动画的大约10-15分钟内,CPU使用率仍然上升到大约5-10%,但这与之前我在一分钟内体验到的60-80%完全不同。

0 个答案:

没有答案