通過動畫可以實現一些比較絢麗的效果,但是在使用過程中,也需要注意一些事情。
一、OOM問題
這個問題主要出現在幀動畫中,當圖片數量較多且圖片較大時就極易出現OOM,盡量避免使用幀動畫。
二、內存泄露
在屬性動畫中有一類無限循環的動畫,這類動畫需要在Activity退出時及時停止,否則將導致Activity無法釋放從而造成內存泄露。
View動畫不存在此問題。
三、兼容性問題
動畫在 3.0 以下的系統上(API level 11)有兼容性問題,在某些特殊場景可能無法正常工作,因此要做好適配工作。
四、View動畫的問題
View動畫是對View的影像做動畫,并不是真正地改變View的狀態,因此有時候會出現動畫完成后View無法隱藏的現象,即setVisibility(View.GONE)失效了,這個時候只要調用view.clearAnimation()清除View動畫即可。
五、不要使用px
在進行動畫的過程中,要盡量使用dp,使用px會導致在不同設備上有不同的效果。
六、動畫元素的交互
將view移動(平移)后,在 Android 3.0 以前的系統上,不管是View動畫還是屬性動畫,新位置均無法觸發單擊事件,同時,老位置仍然可以觸發單擊事件。盡管view已經在視覺上不存在了,將view移回原位置以后,原位置的單擊事件繼續生效。從 3.0 開始,屬性動畫的單擊事件觸發位置為移動后的位置,但是View動畫仍然在原位置。
七、硬件加速
使用動畫的過程中,建議開啟硬件加速,這樣會提高動畫的流暢性。