2012-10-04 40 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