2012-10-04 44 views
21

所以我一直有动画问题,特别是当两个动画同时发生或正确的时候,一个活动加载。我知道这可能是一个资源问题,并且主线程中有很多事情正在进行,导致动画造成口吃。Android动画减少口吃/起伏/滞后

我发现一对夫妇有趣的建议:
1.线程(的ThreadPoolExecutor)
这里:How do I make my animation smoother Android
2. setDrawingCacheEnabled(真)
这里:How does Android's setDrawingCacheEnabled() work?
3的ViewGroup:animationCache = true
Herehttp://www.curious-creature.org/2010/12/02/android-graphics-animations-and-tips-tricks/

但是我一直没有找到任何实例来实现这些东西。有任何想法吗?

+0

AsyncTasks也是实现后台线程的简单方法。 如果你在主线程中做了很多计算,你肯定需要实现线程或者asynctasks,主线程在这里是为了UI,而不是繁重的工作。 – Teovald

+0

是的,我知道,我更多地寻找与线程/ AsyncTasks一起使用的动画示例。 – Rawr

回答

8

我已经按照重要性依次减少口吃上市时,这些规则减少口吃的量对我的动画:

  1. 不要在onCreateonStartonResume启动动画。
  2. 在用户事件(如onClick)上启动动画并禁用触摸事件,直到动画完成。
  3. 不要同时启动2个以上的动画
+0

我们如何“直到动画完成后才提交用户交互?” –

+0

当你开始动画时,设置一个像animStart = 1的变量,并在你要处理按钮按下时检查该变量等。例如,如果您要移动图层,您不希望用户按下按钮该层重新定位。所以设置变量,并在动画结束时取消设置 – Rawr

+0

实现它的最佳方式是什么?如果我在加载活动时需要动画,该怎么办? – Si8