Android:自行编写的RotationAnimation用于车速表 - 性能?

时间:2012-03-25 09:34:05

标签: android multithreading performance animation image-rotation

我的速度表更进一步,但我对我的“解决方案”并不满意。 我创建了自己的View来显示我的车速表。 View扩展了ImageView并显示了速度表(没有针)。当速度要更新时,针将旋转到当前角度,视图无效。现在我的问题是,针的类型是“跳跃”(例如从50km / h到100km / h)。现在我想画一个平滑的动画。 RotationAnimation旋转我的整个速度表,这就是为什么我决定编写一个新的Thread,它以30FPS动画针,因此每秒调用invalidate()30次。这是有效的,但我总是在后台有额外的线程。当我后来拥有比速度计更多的乐器时,还有更多的线程。现在我的第一个问题:我的解决方案的表现如何?每个应用程序可以处理多少个线程?

我的第二个想法是使用SurfaceView作为针,我可以使用RotationAnimation。但是我不确定是否有可能在针旋转时在数字显示器上显示当前速度。 (pe:针的动画从50km / h到100km / h,所以重要的是,数字显示器上的速度始终相同,针指向,而不是总是显示50,直到针到达100,然后数字显示立即跳转到100)。

我希望你能帮我提一些好的建议。 帮助将大受鼓舞

1 个答案:

答案 0 :(得分:0)

您可以尝试与演示者一起实现Observer / Observable模式。你的“当前速度”计算逻辑将更新实现可观察模式的“视图模型”对象,并在演示者(观察者)上注册。现在,每次更新都会通知演示者并使视图无效/重新绘制。最重要的是,您可以向演示者添加“冷却时间”,以防止更新的传播频率超过每秒x次。

可扩展到任意数量的信号,并通过演示者类管道所有逻辑。