1. 程式人生 > >android複雜動畫實現途徑

android複雜動畫實現途徑

最近做一個太陽光旋轉,光掃字的動畫效果,前期試了用ProgressBar用旋轉動畫作為背景,能實現效果,但是旋轉有卡頓現象和功耗太高問題,因此考慮其他方式解決。總結了一下此類動畫的實現途徑包括一下幾個方式:

1、RotateAnimation 或者ProgressBar背景設定為rotate動畫(xml實現)

2、自定義View實現,自定義View中開啟子執行緒去onDraw自己想要的每一幀動畫

3、用SurfaceView實現

4、openGL或者renderScript

ps:重點講一下SurfaceView實現方式,

1、SurfaceView的重新整理處於主動,有利於頻繁的更新畫面。

2、SurfaceView的繪製在子執行緒進行,避免了UI執行緒的阻塞。

3、SurfaceView在底層實現了一個雙緩衝機制,效率大大提升。

最後,文字掃光效果參考 https://github.com/dayiming/BeamTextView 用到了畫筆設定Shader屬性一般用TextShader或者BitmapShader,另外,android.graphics包下面的api