我正在开发一个应用程序,我必须在屏幕的一部分上有一个动画音乐人员。也就是说' S:
我必须精确控制每个元素的大小,并且必须平滑地为音符和谱号的位置和alpha设置动画,使音符从右向左移动(在屏幕左侧消失,并在出现时出现)在右边,因此alpha)。我还必须有时改变音符的颜色。
我想我不能使用标准"动画"类,因为它是一个无限的动画,速度和音符取决于实时因素。
那么最好的方法是什么,以及实现平滑的动画?
不同意见? (VectorDrawables?)单个SurfaceView,我在每个帧手动绘制每个形状? (或TextureView?)
(注意:最小API设置为15)
感谢您帮助我选择合适的技术。
答案 0 :(得分:0)
所以你对Animations类是无限的错了。它不需要。然而Android中的一切都取决于现实生活因素 - Android不是RTOS(实时操作系统),无法保证执行时间。
然而,如果你绝对需要完全控制,我会跳到完全控制 - 勾选编舞,所以你每1/60秒接到一个电话,每一帧都会使你需要改变的视图无效重绘它们。如果手机由于某些原因(例如其他应用程序)运行缓慢,您可能会丢帧或运行速度略低于1/60秒,但这是尽可能接近(以及动画类在幕后使用的内容)。 / p>
答案 1 :(得分:0)
使用动画师,您可以在普通手机上平稳地围绕5种不同视图制作动画。所以在你的情况下(有十几个音符等)它将有大约10fps。因此,SurfaceView和手绘所需的一切都会稍微好一些。也许GLSurfaceView值得考虑。 为了测试这个,我建议你先创建一些测试应用程序,其中10个视图会飞来飞去,看看性能。