Android Animatioin总结
一、动画分类
1.
View Animation (Tween动画)
执行一系列简单的转换。
针对
视图对象内容进行移动,放大,缩小以及产生透明度的变化等四种动画操作。仅针对视图对象内容:
例如:有一个TextView仅能针对文字进行四种动画操作。
例如:有一个ImageView仅能针对背景进行四种动画操作。
更多可参考文档:
2.
Drawable Animation (Frame动画)
传统的动画方法,通过顺序的播放排列好的图片来实现。
某种意义上说像一个胶卷,它是创建一系列不同的对象,按顺序播放。
基类是AnimationDrawable
不能再onCreate中调用start方法,因为AnimationDrawable尚未完全附加到窗口上。如果你想立即播放动画,而无需互动,那么你可能想在您的活动onWindowFocusChanged()方法,当Android有焦点时调用它。
更多可参考文档
3.
Property Animation
Android 11 (3.0)以上才支持,看很多介绍时可以改变视图的属性,但是支持视图外所有对象的动画变换,但是未发现如何修改视图属性的。
ViewPropertyAnimator
interpolator
二、原理简单分析
View Animation 与 DrawableAnimation仅重新绘制,即使使用位移动画显示位置发生改变,其实视图的位置为发生改变。
分别是位置,大小,角度由Matrix 进行
3*3的矩阵变换,、透明度Alpha负责。
代码和xml配置两种
参考资料:
Android中图像变换Matrix的原理、代码验证和应用(一) 共有3篇
http://blog.csdn.net/pathuang68/article/details/6991867
分析android动画模块
http://www.linuxgraphics.cn/animation/android_tween_animation.html
Android 动画框架详解,第 1 部分
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt1/
Android 动画框架详解,第 2 部分
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt2/
http://blog.csdn.net/pathuang68/article/details/6991867
分析android动画模块
http://www.linuxgraphics.cn/animation/android_tween_animation.html
Android 动画框架详解,第 1 部分
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt1/
Android 动画框架详解,第 2 部分
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt2/
Property Animation - 实解
http://blog.csdn.net/tu_bingbing/article/details/8917992
http://blog.csdn.net/tu_bingbing/article/details/8917992
Animation Resources