我制作的应用程序会激发不同的小动画,如下降的旋转星或类似于从下到上浮动的文本,在surfaceview上使用画布进行动画
一旦被解雇,它们都是不变的, 所以我计划了2种方法,1是一个大线程 处理它们所有的动画,每个动画1之后更新1或者对于每种类型的动画,例如流星,都有它自己的线程设置,并且在每个给定点,主要活动可以在其中一个线程上创建命令,创建他,然后启动,然后忘记他,让他在后台运行,在动画结束时,该线程将自行结束。
所以我不必担心存储每个被激活的线程等等,因为我不知道有多少可以在给定时间开始。
因此,解雇随机小的短线程还是有一个大线程来处理它们会更有效吗?会更顺畅,更好吗?
动画仅仅是为了视觉上的结界而不做其他任何事情,它也不会与其它动画完全相互作用,它只是开始,循环,结束。
我希望你明白:\
答案 0 :(得分:2)
你可能想要一个SurfaceView,其中一个线程处理你的所有绘图。每个动画有一个线程似乎过于复杂。每个动画类型当然可以有一个方法,例如只要您的一个动画线程呈现,就会调用renderStars()
,renderText()
等。
推荐阅读:
答案 1 :(得分:0)
在动画期间,您必须更新UI Thread
上的用户界面,不能使用其他线程来运行动画。但是,对于密集动画,您必须使用Gaming Engine
或编写自己的Game Thread
,这将首先根据动画公式更新对象的数据,然后在UI thread
上绘制它们。