如何高效學習Android動畫?

最近想學習Android動畫,看了很多論壇大牛的帖子和Demo,但是始終無法形成一個全局概念,很多知識看了之後感覺只吸收到皮毛。現在讓我自己寫一個view還是不知道如何下手。請問要怎樣高效的學習Android動畫呢?


曾經也同樓主一樣,對Android中的動畫不是很清楚,什麼幀,Tween,屬性等等,很多知識,也很瑣碎,後來覺得動畫這一塊是很多開發人員繞不過的吧,雖然每次通過google或者百度就可以基本滿足需求,但是總覺得太零散,太模糊。其實當時系統學習Android動畫還有一部分原因:將來成為一個android組件開發工程師,如果想做出一些高性能,nice的動畫就必須對動畫的基礎知識有深入的理解,因此就打算系統的學習一下。經過一段時間的專業學習,android動畫的整體以及簡單的動畫實現都不是問題了,後來沒有再深入,是因為自己的興趣方向變了。現在簡單分享一些自己的學習成果和心得吧。

自己整個學習過程中的產出的文章

http://www.lightskystreet.com/2014/12/03/view-and-property-anim-knowldege-and-compare/

http://www.lightskystreet.com/2014/12/04/propertyview-anim-analysis/

http://www.lightskystreet.com/2014/12/10/propertyview-anim-practice/

http://www.lightskystreet.com/2014/12/15/viewpager-anim/

http://www.lightskystreet.com/2015/05/23/anim_basic_knowledge/ (由於 @http://www.zhihu.com/people/033aaa7b41577bdf4f5344943a28dbb0 發起的http://codekk.com/open-source-project-analysis下的開源項目原理分析項目https://github.com/android-cn/android-open-project-analysis 二期中,很多分析項目涉及到了動畫,所以該篇主要是對PropertyAnim詳解和基礎篇中的一些知識進行整理,作為二期的動畫公共知識,http://codekk.com/open-source-project-analysis絕對是超級棒的項目,大家可以多關注)

從http://www.lightskystreet.com/2014/12/03/view-and-property-anim-knowldege-and-compare/以及http://www.lightskystreet.com/2015/05/23/anim_basic_knowledge/這兩篇文章,你可以對android動畫總體有些了解,http://www.lightskystreet.com/2014/12/04/propertyview-anim-analysis/這一篇則是專門介紹了3.0出現的屬性動畫,其中也涉及到了https://github.com/JakeWharton大神為3.0之前實現的兼容庫https://github.com/JakeWharton/NineOldAndroids。

通過ViewPager來實現動畫效果的方式越來越多,一些視差效果也確實很贊,比如雅虎天氣的視差效果,知乎導航界面中元素的視差,關於它們的實現原理,在 http://www.lightskystreet.com/2014/12/15/viewpager-anim/這篇中有詳細的分析,其中也提到了GitHub上一些和ViewPager動畫類似的實現,也分析了它們之間的區別,具體可以參考文章。

PropertyAnim 實際應用主要介紹了一些簡單API的使用,亮點是其中介紹了很多GitHub 上的動畫項目,其中實現多數使用了https://github.com/JakeWharton/NineOldAndroids兼容庫,可以作為不錯的學習資料。

上面幾篇文章中都有非常詳細的介紹,就不多說了,因為文章中對於一些概念,使用,原理介紹的確實太詳細了,現在想起來,當時鑽的確實有點深了,比如http://www.lightskystreet.com/2014/12/04/propertyview-anim-analysis/這篇文章,對屬性動畫中的ValueAnimatorEvaluatorsInterpolators的介紹以及TimeInterpolator和TypeEvaluator的比較等等,具體的可以參考文章。

這幾篇文章看下來,你應該對android動畫有一些更系統更深入的認識了。基本的動畫實現應該沒啥難度了。每篇文章的信息量很是很大的,因為在學習過程中主要是通過大量的GitHub動畫項目,也參考了不少資料,在文章結尾處有提及。

如果你還想進階,這裡再分享一些不錯的項目,這些項目都是在android動畫基礎上建立起來的,所以看他們的源碼,完全沒有難度:

首先推薦一個GitHub組織:https://github.com/Yalantis,該組織開源了很多特效的項目。很新穎,很有創意,絕對眼前一亮,可以作為不錯的學習資料:

https://github.com/Yalantis/GuillotineMenu-Android 銼刀效果,不過我看跟拍電影時的打板有點像

https://github.com/Yalantis/Phoenix 很有創意的下拉動畫,「升起的太陽」

https://github.com/Yalantis/Taurus 也是下拉動畫,「滑翔機」

https://github.com/Yalantis/Context-Menu.Android 菜單動畫,不過個人覺得貌似有點太炫技了

https://github.com/Yalantis/Side-Menu.Android 同樣是菜單動畫,不過加上了Reveal的轉場效果

https://github.com/Yalantis/FlipViewPager.Draco 摺疊動畫

https://github.com/Yalantis/Euclid 轉場動畫,感覺可以歸為MaterialDesign設計風格

------------Yalantis end--------------

https://github.com/daimajia

https://github.com/daimajia/AndroidViewAnimations 動畫集合,

https://github.com/daimajia/AndroidImageSlider ViewPager動畫集合

https://github.com/daimajia/AnimationEasingFunctions 定義了很多Evaluator,你也可以尋找自己的函數來實現更贊的動畫

------------daimajia end--------------

https://github.com/race604/FlyRefresh 紙飛機,效果真是sweet,配上Blog,看看作者的思路和實現原理:http://www.race604.com/flyrefresh/

關於我的幾篇動畫文章,如有不準確的地方,還望指正,希望對您和以後有興趣學習動畫的朋友有些幫助。

其它更多動畫相關學習資料或者不錯的開源庫後面補充吧,還是那句話,原理都一樣,腦洞不夠大,去https://dribbble.com/找找靈感吧。

----------------------------------------------------------------------

分享一下最近star的幾個不錯的動畫庫

https://github.com/TakeoffAndroid/AppIntroAnimation

https://github.com/recruit-lifestyle/WaveSwipeRefreshLayout

https://github.com/recruit-lifestyle/BeerSwipeRefresh

https://github.com/dodola/MetaballLoading

https://github.com/Q42/AndroidScrollingImageView

---------------------------------

來更新一下

因為前兩天看到了Google工程師NickButcher放出了他們在droidconuk15上演講的Buiding Meaningful Motion 的slides,看了之後特別激動。

slides共100多張,特別精細,內容質量也相當高,無論是Slide還是內容都非常棒。整個演講以iosched,googlesamples/android-topeka · GitHub以及NickButcher自己的plaid · GitHub作為演示項目,通過各種motion的具體實現去展示如何構建有意義的動效。

從slides來看,這次演講的內容主要介紹了一些Android 動畫的一些基礎知識,一些之前在上面的文章中寫過的一些動畫API:ViewPropertyAnimator,ObjectAnimator,Interpolator。另外還介紹了一些MaterialDesign風格的動畫類和概念:Circular Reveals ,AnimatedVectorDrawable,Window content transition,Shared element transitions,這些在5.0之前都是沒有的,5.0自帶了transition,circualr reveals這樣的API,使得動畫的種類更多樣,同時動畫的性能方面也表現的更好,一些support lib的支持,也可以讓你在老版本上實現一些5.0中的動畫效果。具體的可以參考 googlesamples/android-topeka · GitHub ,google官方放出的Demo,剛放出來的時候只支持5.0,現在通過support lib兼容到了4.0了,可以作為不錯的參考項目。

我覺得有必要強調一下」有意義「,有時候很多開發者有時候在炫技,動畫很生硬,轉場不自然。包括Yalantis開源的個別項目也是。NickButcher的這場演講就來告訴你,如何構建有意義的動效,當然有些產品中的動效還和交互設計師的專業水平有關。所以可以仔細琢磨下slides和sample 項目中的動畫實現,一些細節的把握。

這次演講的視頻還未放出,不過精美的slides已經是整個演講的精髓了,強烈建議大家看看,對於動畫學習很有幫助;https://plus.google.com/+RomanNurik/posts/AwXCwixwnCb (自備梯子)


自定義 View 和編寫 Android Animation 還是不同的 Topic 的。

@徐廷霆 提到的是一些高階動畫,很贊的,可以花心思寫一些玩玩兒。

可以給題主一些概述,具體的細節可以根據你的實際需求或者感興趣的方面再慢慢展開,每個部分都能挖掘出很有趣的內容:

關於在實際工作中常用或者會接觸到的 Android Animation 大概可以分成以下幾種:

1. View Animation

這種屬於最常使用的動畫之一,例如 View Slide, Fade In/Out, Parallax Effect 等等

2. Activity Transition

常見於 Activity 進入或者跳出時的動畫,比如啟動一個 Activity, 從側面滑入。在 Android 4.4 之後,引入了Scene, enterTransition 和 exitTransition 等概念,可以定義 Activity 進入以後不同View 做的一系列動畫。在 Android 5.0 以後引入了 ShareElementsTransition, 讓開發高質量的 Activity Transition 變的更加容易。

3. Drawable Animation

Drawable Animation 常見於啟動或者一些載入過程中的幀動畫。當然,Android 5.0 以後引入了 Vector Drawable, 一些很漂亮的 icon transition 就變的相對很容易實現一些,自然應用細節體驗就能上很大一個台階。

4. Property Animation

Property Animation 是 Android 3.0 以後引入的動畫框架,一開始概念略微難理解,但是理解以後會發現非常好用,很多自定義動畫或者複雜動畫的場景變換可以藉助這套框架來實現。

5. 其他

這些包括 @徐廷霆 提到的粒子,分形,煙霧,模糊等等,需要藉助一些高階技術,比如 RenderScript, OpenGLES, NDK 等等來做,假如不是特別需求,一般開發應用過程中還不會用到,做為興趣愛好倒是挺好的一個切入點。

一些學習資料或者學習方法:

翻牆,翻牆,做為一個 Android 工程師,必須要學會翻牆!

首先是 Android 開發文檔:

https://developer.android.com/intl/zh-cn/guide/topics/graphics/index.html

https://developer.android.com/intl/zh-cn/training/animation/index.html

Romain Guy 的 Blog

http://www.curious-creature.com/category/android/

Roman Nurik 的 G+

https://plus.google.com/+RomanNurik/posts

Google Developer Live Videos

+Chet Haase "s DevBytes:

Android 4.4 Transition: https://www.youtube.com/watch?v=S3H7nJ4QaD8

Custom Activity Transition: https://www.youtube.com/watch?v=CPxkoe2MraA

View Animations: https://www.youtube.com/watch?v=_UWXqFBF86U

Window Animations: https://www.youtube.com/watch?v=Ho8vk61lVIU

針對 Android 5.0 的 Activity Transition:

+Alex Lockwood "s Android Design Patterns blog:

http://www.androiddesignpatterns.com/2014/12/activity-fragment-transitions-in-android-lollipop-part1.html

Sample On Github: https://github.com/alexjlockwood/activity-transitions

+George Mount "s blog: https://halfthought.wordpress.com

萬能的 StackOverflow 和 github

剩下就是多做各種各樣的練習,用 Kirill Grouchnikov 的話來講

Step 1: make yourself familiar with the source code of the existing components [1]. That always helps.

Step 2: throw some code around and see how it looks like on the screen. At some point, after enough Mountain Dew has been consumed, it starts looking somewhat decent. Rinse and repeat.

引自: https://plus.google.com/+KirillGrouchnikov/posts/Cwk7joBV3AC (PS. 這篇 Post 還很好的講解了如何自定義 View ^_^ ).

以上只是一些概述,如果題主針對某些具體問題感興趣,可以再修改問題或者提出來,如果能提供幫助的話,很樂意能夠分享。


JakeWharton/NineOldAndroids · GitHub

要研究Android上動畫的應用,可以玩它的sample。

要研究實現原理,可以玩它的lib。

還有就是這本書,是不是經常覺得Android/iOS的一些翻頁啦,彈性啦,重力啦,粒子系統啦,分形啦,煙霧啦,海浪啦,火焰啦的動畫效果是黑魔法,自己看著代碼也能敲出來,沒代碼參考想破頭也想不出來。

你需要動力學的知識,要做出好看,有想法的動畫,不能不掌握矢量代數和動力學。

《The Nature of Code:Simulating Natural Systems with Processing》

這本書是目前入門最好的。

shiffman/The-Nature-of-Code · GitHub 這裡是這本開源書

國內也出了翻譯版,番號9787115369475。

Processing語言,其實是Java偽裝的啦,Android碼農入門只需半天,所以也很好移植其演算法到Android。


上面兩位大神說的很全面啦,這裡補充下我學習動畫的方式~

1.寫demo,熟悉API。android動畫分為兩大類:一類是傳統動畫,包括view動畫,drawable動畫。這兩種動畫使用起來很簡單,幾行代碼搞定。另一類就是3.0之後提供的屬性動畫,相對而言複雜些,需要理解Evaluator,Interpolator,Animator,ValueAnimator等類的關係。但是屬性動畫非常強大,幾乎可以實現任何動畫,需要重點掌握。每種動畫都有兩種使用方式,一種是java代碼,另一種是使用xml,都需要熟悉。另外,屬性動畫有一個比較出名的開源庫叫nineoldandroids,這個是為了兼容低版本的,跟官方屬性動畫用法類似,沒有什麼學習成本。

2.看博客,看官方文檔。熟悉API後,就需要找一些博客來讀,看有哪些自己還不知道的知識點。要善用google,把搜索排在第一頁的全部看完我想就差不多了。這時候再去看看官方的文檔增加下印象。

3.看API demos裡面的示例,這裡有很多精美的動畫效果,進階必備。

4.寫總結,發博客。好記性不如爛筆頭,知識get之後,一定要記錄下來,既能加深印象又能方便以後查找。你可以寫到雲筆記上,也可以發到博客上。不是很推薦手寫,太低效了。

5.源碼(可選)。想深入理解動畫的話當然得看源碼了,當然,這看你個人時間分配以及學習能力了,因為看源碼既耗時又耗神。這裡我建議可以看看屬性動畫的源碼,相對而言比較實用。

-----------------------------------

題主說的自定義view跟動畫是兩個不同的概念,編寫自定義view需要掌握view繪製流程,事件分發機制等,這裡不展開了。

以上就是我學習動畫的幾種方式,基本是循序漸進的,希望可以幫到你。


循序漸進的來吧。

1.先用系統提供的API來實現一些效果,比如平移啊,旋轉啊,淡入淡出什麼的,有視圖動畫和屬性動畫的區別吧,需要分別實現一下,看看有什麼差別。

2.當你可以熟練的完成【1】後,你就自己用View的相關方法和自己開的線程來實現動畫吧,比如你讓一個View平移一段距離啊,你可以寫個線程,16ms(60FPS)調用一次啊,用View的方法來移動一點距離,跑起來也是個動畫的效果。

3.當你可以熟練的使用【2】的方法後,你應該掌握了關於操作View的各種方法和技巧了。這個時候你可以去看看系統提供的API是如何實現動畫的,加深你對動畫的理解,幫助你實現更高效的動畫。

貼下自己的幾篇與動畫相關的博客,題目有空可以看下:

《初探Android動畫之門》http://blog.csdn.net/krossford/article/details/22311127

《使用線程實現視圖平滑滾動》http://blog.csdn.net/krossford/article/details/22311159

《Android動畫原理分析》http://blog.csdn.net/krossford/article/details/46285455


我也來補充一個吧。

最近在跟著網上的一個教程學習 Android APP UI。這個教程的最終目的是實現 Material Design 的 Instagram (只有 UI)。

教程地址在這裡:中文翻譯 -- 實現InstaMaterial概念設計,英文 -- Instagram with Material Design concept is getting real。共有九章,跟著學下來的話,大概需要一周。

最終的實現效果非常棒,教程也寫得非常詳細。這個例子里涉及大量的動畫實現,自定義 View 的實現。如果想學習 Android APP 的 UI 布局和動畫,以及自定義 View 的實現,我覺得這個是一個炒雞好的例子。

我本人在剛開始的時候,也是對各種動畫實現很迷惑,學習前幾章的時候,也只能跟著一行行地敲代碼。後來明白這些動畫,無非就是通過位移 (translation),拉伸 (scale),透明度 (alpha) 等的變化來實現的。於是到後面幾章,基本就可以不看教程的代碼自己來實現了。


在 Android 開發者網站 搜索『animation』,通過『blog』過濾搜索結果,可以獲得很多博文,我只摘錄了前兩頁,並把它們分成了兩類:

動畫可以做成什麼樣子(第1類)

下述幾篇博文通過如下3個方面向開發者展示『動畫』:

  • 給出一些指導原則,闡述為什麼要如此做動畫,或者這樣的動畫有什麼好處;
  • 給出 GIF 動圖,直觀地展示動畫是什麼;
  • 給出實現這種動畫的代碼片段(關鍵類、方法、資源文件)或者實現思路;

這非常棒,可以幫助我們很快建立動畫的印象,了解某個名詞代表的動畫是什麼樣子,應該怎麼去實現。而且代碼片段很多是從開源項目中摘錄的,意味著我們可以調試這些動畫。

2014-08-05 Material design in the 2014 Google I/O app

這篇文章的作者是 Google I/O app 的主設計師,而 I/O app 的作用之一是提供 Android 設計和開發的最佳實踐(it serves as a reference demo for Android design and development best practices)。文中特別提到了最喜愛的 app 細節之一就和動畫有關:浮動操作按鈕(floating action button)的狀態根據「用戶是否會出席當前頁面的這個會議」而改變,狀態改變時伴隨著動畫。文中詳細地講到了動畫實現的步驟,雖未羅列代碼,但可以從 github-google-io-app 獲取源碼,了解實現細節。

2014-10-24 Implementing Material Design in Your Android app

這篇文章一半篇幅在講『Motion』:當用戶觸摸屏幕時,所有的變化應從接觸點開始向外輻射,建立畫面過渡時的關聯和連續性,這些必須是有意義且友好的。Materials 通過這種方式向用戶提供反饋,使用戶注意到變化,從而幫助到用戶。(to focus attention, establish spatial relationships and maintain continuity. Materials respond to touch to confirm your interaction and all changes radiate outward from your touch point. All motion is meaningful and intimate, aiding the user』s comprehension.)。分別介紹了:

  • Activity Fragment Transitions:在兩個頁面間平滑過渡,常見的場景是從列表視圖切換到詳情視圖;
  • Ripples:一種波紋效果,波紋從觸點開始向外擴散直至填充整個view,點擊繼承自 Theme.Material 的 button 就可以看到這種效果;
  • StateListAnimator:View 狀態改變時的動畫;
  • Circular Reveal:一個圓形扇面從觸點開始向外輻射直至填充整個view,這種過渡效果常用於展示新的內容;
  • Interpolators:插值器定義了動畫改變的速率,比如允許 alpha, scale, translate, rotate 加速、減速、重複等。比如插值器 fast_out_slow_in, 加速開始、逐漸降速直至結束,這樣的動畫效果使得對象在整個運動軌跡中,在接近終點的位置耗費較多時間。而根據不同的場景,選擇不同的插值器或者自定義插值器,就可以使動畫更具意義,擺脫千篇一律的印象。

2015-05-28 Announcing the Material Design Showcase and Awards

這篇文章先回顧了14年6月首次公布 material design 時的願景『a single design system that can work across platforms and brands』。但這些願景和 material design 的設計思想全是通過『假想中的 App』 來演示的。然後轉眼到了15年5月,也就是這篇文章發布的日期,世界已經發生了變化,很多 App 接受並通過 Android 5.0 SDK 和 AppCompat 實現了material design。

因此特別收集了 18 個符合 material design 的 app 向眾人展示,其中 6 個 app 由於在 material design 某一方面做的特別出色而被授予了第一屆 Material Design Awards. 因動畫效果而獲獎的是 Tumblr: Delightful Animation.

動畫效果可以做成什麼樣子,官方告訴你去看看 Tumblr.

2015-06-16 More Material Design with Topeka for Android

這篇文章是開源 Android App 項目 Topeka for Android 的說明文檔,用來演示 material design 的設計原則,幫助開發者在不同的平台上建立統一的用戶體驗。(原文:It demonstrates that the same branding and material design principles can be used to create a consistent experience across platforms.)

Topeka 是一個趣味問答應用,包含9個種類的問題,以網格布局呈現,點擊某個格子進入回答問題的頁面,一個問題回答完後就切換到下一個問題,有選擇題填空題等各種類型的問題(對應各種UI組件)。包含了很多動畫元素:

  • Transitions: 很棒的 Activities 轉場動畫(great transitions between Activities);

  • Animations: 答題時有精心編排的動畫,一旦答題就彈出一個浮動操作按鈕,點擊按鈕提交答案就進入了下一個問題,這時會根據回答正確與否播放對應的動畫;

  • Property Animations:為 circular reveal 增加顏色漸變的動畫(從FAB的顏色變成透明)以營造出消融的效果(Adding a color animation from the FAB』s color to transparent creates a dissolve like effect to the circular reveal)。

    (上上一個gif包含這種效果,但太快了看不出效果,下面這個gif延長了時間,為了突齣動畫)

概述動畫相關的類和介面(第2類)

2011-05-30 Introducing ViewPropertyAnimator

2011-02-24 Animation in Honeycomb

2011-11-01 Android 4.0 Graphics and Animations

前兩篇文章先討論了一個問題,已經有了能實現 move, scale, rotate, and fade 這些視圖動畫的 android.view.animation ,為什麼還要在 3.0 新引入的 APIs?帶來了哪些新特性?然後進一步展示了這些新特性的強大便利之處。第三篇文章討論了 4.0 在 3.0 核心特性基礎上增加的一小點兒改善。(These articles discuss the new APIs added in 3.0 that make animation in Android easier, more powerful, and more flexible. The Android 4.0 improvements discussed below are small additions to these core facilities.)

這幾文章排在搜索結果的前幾位,可見其重要程度,作者是 Chet Haase,一個致力於圖形和動畫研究的 Android 開發者,可以從他的 個人博客graphics-geek.blogspot.com 閱讀更多相關主題的博文。

需要說明的是 HONEYCOMB 3.0( about versions android-3.0 highlights ) 發佈於 2011.02,引入了New animation framework;3.1 發佈於 2011.05;ICE_CREAM_SANDWICH 4.0 發佈於 2011.11。而這幾篇博文的發布時間與相應的系統版本發布時間一致,而且其中兩篇文章在 Android API Guides: Animation and Graphics 頁面有推薦,所以真的應該多關注和學習官方開發者的文章

2015-04-21 Android Support Library 22.1

這篇文章介紹了 Android support library 22.1 版本帶來的新特性。與動畫有關的內容是:Lollipop android.R.interpolator 新增的幾個 Interpolators 已經在 Support V4 得到支持。

通讀完上述幾篇文章後,我們就能夠了解到『動畫可以做成什麼樣子』、『實現這些動畫的類和介面,及技術的演變歷史』。

是不是有種高屋建瓴、運籌帷幄的感覺?我的感覺是,不至於淹沒於 Android 文檔的海洋中,被巨多的技術細節打的暈頭轉向。

而且我覺得學習 demo 時在精不在多,所以應該先從官方的 sample 以及上述官方文章中的 demo 入手,同時查閱 API guides:

Android Training Guides

Android 開發者網站提供的 Training:

Animating Views Using Scenes and Transitions

Adding Animations

Defining Custom Animations

Android 開發者網站提供的 API Guides:

Animation and Graphics Overview

有很多途徑獲取官方 sample:Welcome to code samples for Android developers,比如直接在 Android Studio 中導入。

學習路線圖

非官方的博文也有很棒的,比如下面這一篇:

Exploring Meaningful Motion on Android ,這是譯文 探索安卓中有意義的動畫 ,這是文章對應的開源項目 hitherejoe/animate ,1280顆星。

類似的一個開源項目 lgvalle/Material-Animations,3840顆星。

但如果需要系統地學習某塊知識點,從第一手和權威的角度講,官網及其博客是開發者的不二選擇。不要介意在閱讀英文文檔上花費的時間,這些都是值得的。看不懂的再查閱相關文章相佐證。

所以我花了大概三天時間,整理出這篇文章,制定了我的學習路線圖:

  1. 通讀官方 blog(上述列出的);
  2. 學習官方 training(上述列出的);
  3. 學習 GitHub 高星(感興趣的)項目(好多人推薦了好多非常好的項目);
  4. 閱讀其它高質量的 blog 查缺補漏(善用 google);

『有GIF圖』如何學習 Android Animation?


81813780/AVLoadingIndicatorView · GitHub

可以把這個庫從頭到尾實現一遍(對,沒錯,是我寫的庫),記得回來點贊哦


將一個動畫拆分成多個單一動畫,逐個實現再拼起來(當然,不一定都是這樣),用好objectAnimator,提供set/get方法,不僅能夠實現動畫,一些很贊的功能也能實現,比如為activity某個變數提供set/get方法,將activity傳給objectanimator(╭(╯ε╰)╮手機碼字不容易)


最近也正在總結動畫的用法,不過,我偏重於xml方面的

Android樣式的開發:View Animation篇

Android樣式的開發:Property Animation篇(還在編寫中)


或許可以考慮從lottie入手先培養起興趣,然後再看看lottie的源碼實現,看不懂哪塊單獨拎出來學


https://labs.ribot.co.uk/exploring-meaningful-motion-on-android-1cd95a4bc61d#.bfa1zoza4

GitHub - hitherejoe/animate: An application demoing meaningful motion on Android

基本上都講全了


viewpager 那個導航頁的動畫有地址嗎?


mark


推薦閱讀:

學習狀態不穩定有辦法改進嗎?
全才學霸是怎樣管理時間的?如何成為複合型人才?
如何學會多線程工作?
高智商的學霸們在學習陌生的新知識時是否也會經歷一段理解困難的時期?

TAG:學習 | Android開發 | 學習方法 | 手持移動設備 |