如何高效的学习Android动画
来源:互联网 发布:买卖二代身份证 淘宝 编辑:程序博客网 时间:2024/06/07 02:53
前言
本篇文章就是在知乎回答的一个问题,这里记录下,以后看到我博客的朋友也可以看到。
曾经也同楼主一样,对Android中的动画不是很清楚,什么帧,Tween,属性等等,很多知识,也很琐碎,后来觉得动画这一块是很多开发人员绕不过的吧,虽然每次通过google或者百度就可以基本满足需求,但是总觉得太零散,太模糊。其实当时系统学习Android动画还有一部分原因:将来成为一个android组件开发工程师,如果想做出一些高性能,nice的动画就必须对动画的基础知识有深入的理解,因此就打算系统的学习一下。经过一段时间的专业学习,android动画的整体以及简单的动画实现都不是问题了,后来没有再深入,是因为自己的兴趣方向变了。现在简单分享一些自己的学习成果和心得吧。
个人整个学习过程中的产出的文章
- 动画系列 - 传统View动画与Property动画基础及比较
- 动画系列 - PropertyAnim 详解
- 动画系列 - PropertyAnim 实际应用
- 动画系列 - ViewPager动画
- Android 动画基础 (由 @Trinea 发起的codeKK 项目下的开源项目原理分析项目android-cn/android-open-project-analysis 二期中,很多分析项目涉及到了动画,所以该篇主要是对PropertyAnim详解和基础篇中的一些知识进行整理,作为二期的动画公共知识,codeKK 绝对是超级棒的项目,大家可以多关注)
从传统View动画与Property动画基础及比较 以及Android 动画基础 这两篇文章,你可以对android动画总体有些了解,PropertyAnim 详解这一篇则是专门介绍了3.0出现的属性动画,其中也涉及到了JakeWharton大神为3.0之前实现的兼容库NineOldAndroids。
通过ViewPager来实现动画效果的方式越来越多,一些视差效果也确实很赞,比如雅虎天气的视差效果,知乎导航界面中元素的视差,关于它们的实现原理,在 ViewPager动画 这篇中有详细的分析,其中也提到了GitHub上一些和ViewPager动画类似的实现,也分析了它们之间的区别,具体可以参考文章。
PropertyAnim 实际应用主要介绍了一些简单API的使用,亮点是其中介绍了很多GitHub 上的动画项目,其中实现多数使用了NineOldAndroids兼容库,可以作为不错的学习资料。
上面几篇文章中都有非常详细的介绍,就不多说了,因为文章中对于一些概念,使用,原理介绍的确实太详细了,现在想起来,当时钻的确实有点深了,比如PropertyAnim 详解这篇文章,对属性动画中的ValueAnimator,Evaluators,Interpolators的介绍以及TimeInterpolator和TypeEvaluator的比较等等,具体的可以参考文章。
这几篇文章看下来,你应该对android动画有一些更系统更深入的认识了。基本的动画实现应该没啥难度了。每篇文章的信息量很是很大的,因为在学习过程中主要是通过大量的GitHub动画项目,也参考了不少资料,在文章结尾处有提及。
进阶
如果你还想进阶,这里再分享一些不错的项目,这些项目都是在android动画基础上建立起来的,所以看他们的源码,完全没有难度.
首先推荐一个GitHub组织:Yalantis,该组织开源了很多特效的项目。很新颖,很有创意,绝对眼前一亮,可以作为不错的学习资料:
Yalantis
- Yalantis/GuillotineMenu-Android 锉刀效果,不过我看跟拍电影时的打板有点像
- Yalantis/Phoenix 很有创意的下拉动画,“升起的太阳”
- Yalantis/Taurus · GitHub 也是下拉动画,“滑翔机”
- Yalantis/Context-Menu.Android 菜单动画,不过个人觉得貌似有点太炫技了
- Side-Menu 同样是菜单动画,不过加上了Reveal的转场效果
- Yalantis/FlipViewPager.Draco 折叠动画
- Yalantis/Euclid 转场动画,感觉可以归为MaterialDesign设计风格
daimajia (代码家)
- daimajia/AndroidViewAnimations 动画集合,
- daimajia/AndroidImageSlider ViewPager动画集合
- daimajia/AnimationEasingFunctions 定义了很多Evaluator,你也可以寻找自己的函数来实现更赞的动画
很棒的纸飞机
race604/FlyRefresh 纸飞机,效果真是sweet,配上Blog,看看作者的思路和实现原理:FlyRefresh
关于我的几篇动画文章,如有不准确的地方,还望指正,希望对您和以后有兴趣学习动画的朋友有些帮助。
其它更多动画相关学习资料或者不错的开源库后面补充吧,还是那句话,原理都一样,脑洞不够大,去Dribbble找找灵感吧。
分享一下最近star的几个不错的动画库
- TakeoffAndroid/AppIntroAnimation
- recruit-lifestyle/WaveSwipeRefreshLayout
- recruit-lifestyle/BeerSwipeRefresh
- dodola/MetaballLoading
- Q42/AndroidScrollingImageView
- 如何高效的学习Android动画
- 高效学习Android动画
- 如何高效的学习
- 如何高效的学习。
- 如何高效的学习
- 如何高效的学习高等数学
- 如何更加高效的学习
- 如何高效学习的收获
- 如何高效的使用搜索引擎进行学习
- 如何高效的使用搜索引擎进行学习
- 如何学习高效的工作呢
- 如何高效的学习掌握新技术
- 如何高效的学习TensorFlow代码?
- 一周一书一文(20160911):如何高效的学习
- 如何编写高效的Android代码
- 如何编写高效的Android代码(3)
- 如何编写高效的Android代码
- 如何编写高效的Android代码
- Timus 1892 Morning in Koltsovo
- iOS向上滑动,导航栏颜色逐渐加深
- angularJS $resource与后台restapi的对应关系
- 初识JSP
- java调用MySQL的kettle资源库时的编码问题
- 如何高效的学习Android动画
- 存储网页为离线mht文件
- 存储网页为离线mht文件
- java面试题
- IT--linux--KVM--创建磁盘
- 全志H3平台CLOCK简析
- 使用ContentProvider跨进程共享数据
- Ubuntu14.04添加鼠标右键new_empty_file菜单
- 动态资源分配(Dynamic Resource Allocation)