Android动画,从洪荒时代到豆蔻年华
Android动画从最初的帧动画、tween动画,到后来的property动画,再到现在的Transitions动画、Vector动画、Materail design,Android的动画逐渐从洪荒年代走进了自己的豆蔻年华。如果把Android的动画展开详细的讲,将是一个浩大的工程,本文只介绍基础知识,并推荐相关的阅读,感兴趣的小伙伴可以继续深入学习。本文首先简单介绍一下到目前为止用到的主要动画类型,然后在介绍一些实现动画的一些基本知识技巧。
基本动画类型
1. 帧动画
帧动画类似于胶片电影,把一帧帧图像连续播放即可形成一个连续的动画,这也是最简单的动画。在使用上一般有两种,直接在xml中定义或者在代码中code。Android帧动画文中介绍了帧动画的基本用法。
2. Tween动画
Tween动画在应用中经常用到,可以完成一些基本的动画,如旋转、移动、缩放、透明度等。Tween动画中用到了插值器,插值器和估值器一文很好地介绍了基本知识。Tween动画使用中介绍了Tween的基本用法。
3.property属性动画
property相对于帧动画和Tween动画来讲基本就是bug级别的存在,鸿洋大神的两篇文章详细介绍了property动画:Android 属性动画(Property Animation) 完全解析 (上),Android 属性动画(Property Animation) 完全解析 (下)。文中介绍了ObjectAnimator和ValueAnimator的功能,此处结合插值器和估值器,可以很好地理解文中的demo。属性动画的使用文中也介绍了属性动画的相关。
4.Transitions动画
从material design开始,Google推出了一些支持包用于支持其动画实现。Transitions动画文中进行了详细介绍,并提供了Github兼容低版本安卓,实现了炫酷的效果。如果需要做一些小清新的app开发,可以很开心地使用,效果不错。
5. Vector动画
Android Vector曲折的兼容之路中详细介绍了Vector动画需要用到的工具,需要填的坑,以及基础的用法,并提供了demo,Vector动画用起来非常的简单,而效果又非常好,个人认为是一个发展的方向,但是使用时要注意效率问题,合理使用。当然google之后应该也会在这一方面继续加强。
技巧
这部分内容比较散,可能会持续更新……
1. 贝赛尔曲线
贝赛尔曲线在计算机图形学中用的很广泛,Android提供了二阶、三阶贝塞尔曲线,结合path可以非常容易的绘制漂亮的曲线。
在实现动画的时有时需要让View顺着一定的Path移动,很多时候其实就是使用了贝塞尔曲线来实现。贝塞尔曲线在Android中的应用
2.Path和PathMeasure的使用
PathMeasure之迷径追踪文中介绍了PathMeasure的使用,非常好的一篇文章,但是个人认为如果使用Vector动画来实现可能更简单,但是使用Vector对动画的控制性要弱的多。如果一个动画要使用在多个View上,使用PathMeasure之迷径追踪文中提到方法非常有效。