以下簡書的文章介紹的很詳細
研究了很長時間,最后我們直播項目放棄了使用Lottie,后續(xù)更新Lottie存在的問題!目前更正考慮使用SVGA Animation
當push出新的控制器或者程序進入后臺的時候動畫會停止,
animation stop after enter background
處理方式:
當程序進入后臺的時候,就把動畫停止掉,程序進入前臺的話看需求是否繼續(xù)播放上次的動畫或者是移除掉動畫
其實Android和iOS實現(xiàn)起來還是很容易的,但是配合原畫調(diào)試導json格式的動畫出耗費了一下時間,在這里羅列一下遇到的問題:
安裝插件
大殺器Bodymovin和Lottie:把AE動畫轉(zhuǎn)換成HTML5/Android/iOS原生動畫
如何用AE導出程序員可以復用的代碼
https://github.com/bigxixi/bodymovin
安裝插件導出json的時候發(fā)現(xiàn)不能帶有圖層樣式(如投影收叶、發(fā)光等暫時都不支持)
簡單來說就是不能含有光效! 我們的直播禮物都是很炫酷,含有渲染和粒子效果!這也導致了后續(xù)沒有采用Lottie的直接原因!
這個https://github.com/syik/JR總結(jié)的很好!截個圖粘貼在這里
Lottie的性能
以下是Lottie性能的官方的說明:
- 如果沒有mask和mattes,那么性能和內(nèi)存非常好悼院,沒有bitmap創(chuàng)建轨域,大部分操作都是簡單的cavas繪制袱耽。
- 如果存在mattes,將會創(chuàng)建2~3個bitmap干发。bitmap在動畫加載到window時被創(chuàng)建朱巨,被window刪除時回收。所以不宜在RecyclerView中使用包涵mattes或者mask的動畫铐然,否則會引起bitmap抖動蔬崩。除了內(nèi)存抖動恶座,mattes和mask中必要的bitmap.eraseColor()和canvas.drawBitmap()也會降低動畫性能。對于簡單的動畫沥阳,在實際使用時性能不太明顯跨琳。
- 如果在列表中使用動畫,推薦使用緩存LottieAnimationView.setAnimation(String, CacheStrategy) 桐罕。
這篇Lottie--讓動畫如此簡單 QQ音樂技術(shù)團隊出品的講述的也很詳細!
如何處理光效的
上述基本上就是使用Lottie中碰到的問題以及搜索到的比較詳細的博客!描述過程中肯定有錯誤,也希望可以一起討論