Android-動畫系列 01
動畫開源項目
- 圓形進度球:
水波紋
、進度條
、自定義View
、貝塞爾曲線
- 1.1 https://juejin.im/entry/5c270cc7f265da615b718a5e
- 1.2 http://www.jcodecraeer.com/a/opensource/2015/0902/3402.html
- 1.3 https://github.com/tangqi92/WaveLoadingView (star 1500)
- 1.4 https://github.com/gelitenight/WaveView (star 1400)
- 1.5 https://github.com/jingchenUSTC/WaveView (貝塞爾實現進度條邏輯)
- 1.6 https://github.com/Geekince/WaterWaveView
- 1.7 SmileyLoadingView
- Ripple Effect(觸摸反饋動畫,水波紋點擊效果):
Android 5.0
- 2.1 https://www.tuicool.com/articles/NFr6jie
- 2.2 https://blog.csdn.net/gu18168/article/details/56290221
- CircularReveal圓形擴散動畫
水波紋
、RecycleView Item
、MD
- 3.1 http://blog.csdn.net/u010399316/article/details/50937050 RecyleView Item 展示動畫
- 碎粒子動畫
- 4.1 https://www.jianshu.com/p/1af53020719f
- 頁面切換動畫
共享元素
、轉場動畫
- 5.1 http://www.jianshu.com/p/4c83078d23ef
- 5.2 https://blog.csdn.net/u012702547/article/details/51289789
- 5.3 https://download.csdn.net/download/w630886916/10036488
- 5.4 https://blog.csdn.net/jiangxuqaz/article/details/47264473
Activity滑動切換
- 第三方庫
- 6.1
Airbnb
開源的一個在安卓上使用After Effects 動畫的庫lottie-android
- 6.2 https://juejin.im/post/5c4088a8f265da616b10f59a
- 加載效果
加載
- 7.1 https://github.com/Kyson/WhorlView
- 彈出動畫
- 8.1 https://github.com/futuresimple/android-floating-action-button
- 8.2 https://github.com/onivas/MenuAnimation
- 8.3 https://github.com/Karumi/ExpandableSelector
- 8.4 https://github.com/wangjiegulu/RapidFloatingActionButton
- 8.5 https://github.com/yavski/fab-speed-dial
- 其他
- 9.1 https://blog.csdn.net/shedoor/article/details/81251849
動畫種類
- 幀動畫 (Frame Animation)
- 1.1 一般開機動畫會用到
- 1.2 複雜動畫
- 1.3 使用幀動畫時需要注意,不要使用過多特別大的圖,容易導致內存不足
- 補間動畫 即View動畫:主要有平移、旋轉、縮放、漸變4種方式或組合一起的動畫。
例如:PopWindow動畫、Activity進入,退出、ViewGroup通過layoutAnimation設置子控件動畫、RecycleView中Item展示,消失動畫、約束佈局實現的關鍵幀動畫(ConstraintSet 動畫)等
- 2.1 一般直接作用View上,實現基本動畫:平移、旋轉、縮放、透明度、或前幾者的交集
- 2.2 xml文件實現的補間動畫,複用率極高。在Activity切換,窗口彈出時等情景中有着很好的效果
- 屬性動畫
- 3.1 https://www.cnblogs.com/dasusu/p/8595422.html
- 3.2 屬性動畫跟View動畫較相似,先說下各自特點以及區別
- View動畫能力較爲單一,目前只支持幀動畫、縮放、位移、旋轉、透明度以及這些動畫組合動畫
- View動畫改變的是View的繪製效果,View位置和相關屬性並不會改變,這也就造成了點擊事件觸發區域位置爲動畫前的位置的原因
- 屬性動畫作用對象不侷限在View上,而是任何提供了Getter和Setter 方法的對象屬性上
- 屬性動畫沒有直接改變View狀態的能力,而是通過動態改變View相關屬性來改變 View顯示效果
- 屬性動畫使用更方便,可以用更簡潔的代碼實現相關動畫
- 屬性動畫是Android3.0以上系統提供,在3.0以下需導入nineoldandroids 三方庫解決
- Vector動畫
矢量圖動畫
- 4.1 http://www.jcodecraeer.com/a/opensource/2017/0627/8116.html
- 4.2 https://github.com/tarek360/RichPath
- 4.3 https://www.jianshu.com/p/4707a4738a51
參考
- https://www.jianshu.com/p/27ac2a314fae (屬性動畫講解,guolin_blog (郭霖)獨家發佈)
- http://a.codekk.com/detail/Android/lightSky/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Android%20%E5%8A%A8%E7%94%BB%E5%9F%BA%E7%A1%80
- http://a.codekk.com/detail/Android/lightSky/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20View%20%E7%BB%98%E5%88%B6%E6%B5%81%E7%A8%8B