1

我制作了一个应用程序,它可以触发不同的小动画,例如下降的旋转星形或类似文字从下到上浮动的动画,在Android:对于画布动画,最好有1个大线程或者多个小线程

他们都是恒定的,一旦开了surfaceview帆布, 所以我计划在这2种方式,1是一个很大的主题,其 处理他们所有的动画,互相动画完成后,更新各1后1

或对于诸如流星等各种动画有自己的线程设置,并且在每个给定点,主要活动可以有一个命令在其中一个线程上进行,cr吃他,开始,而不是忘记他,让他在后台运行,并在动画结束时,线程将自行结束。

所以我不必担心存储每个被解雇的线程等,因为我不知道有多少人可以在给定的时间开始。

因此,如何激发随机小短线程或使用一个大线程来处理所有这些问题,会更有效率吗?它会更顺利和更好地工作吗?

动画只是视觉上的附魔,没有其他任何东西,它也不与其他动画交互,它只是简单地开始,循环,结束。

我希望你明白:\

回答

2

您可能想要一个SurfaceView,其中一个线程处理所有绘图。每个动画有一个线程似乎过于复杂。对于每个动画类型,您当然可以有一个方法renderStars(),renderText()等等,只要你的一个动画线程呈现就会被调用。

推荐阅读:

0

在动画过程中,你将不得不更新UI Thread您的UI,你不能使用不同的线程运行的动画。但是,对于密集型动画,您必须使用Gaming Engine或编写自己的Game Thread,它将首先根据动画公式更新对象的数据,然后在UI thread上绘制它们。

+0

所以你基本上说的是,我不能有几个线程做这样的任务吗?我需要1个线程,在这种情况下,一个“UI线程”,它将处理所有的动画? –

+0

另外,它在什么时候完全变成了密集的动画? –

+0

@DanielMendel这是不正确的。必须在UI线程上调用所有View方法,但是您可以并且可能应该在第二个线程上设置动画效果。 SurfaceView是专门为此设计的,并具有使同步变得简单的方法。 –