美文网首页
Android动画原理分析(一)---补间动画

Android动画原理分析(一)---补间动画

作者: 码上修行 | 来源:发表于2019-07-12 21:57 被阅读0次

1、基本特点

补间动画(Tween动画),是android最早的动画框架,从Android1.0开始就有。

功能:可以实现移动、旋转、缩放、渐变四种效果以及这四种效果的组合形式。

实现形式:xml和代码。

优点:使用简单效果流畅。

缺点:1、扩展性差,不支持自定义view;
2、动画只改变控件在屏幕的位置,不改变控件的实际属性。典型例子:Button执行完动画移动到另外位置,点击事件还在原来的地方。

2、设计原理:

虽然补间动画有点古老,但是他的设计思想挺值得分析和借鉴的。这一块的源代码位于package android.view.animation

下图是补间动画的主体类图:

图1-补间动画UML类图

动画的状态数据存在Transformation类中,主要的两个成员是mAlpha用了描述渐变效果和Matrix用来描述缩放旋转和平移效果。

通过AnimationUtils可以加载xml描述的动画或者通过调用构造函数生成需要的动画

动画的中间值则是由TimeInterpolator子类通过各种算法插值得出。

而Animation和Interpolator是由AnimationUtils加载xml或者通过默认值创造出来。

整个补间动画模块是在View绘制时嵌入的,下图是简要的时序图:

图1-调用时序图

VIew的绘制过程是很复杂的,这里只是介绍了一下调用补间动画模块的一个过程,如果有兴趣可以自己查看Android源码。上图箭头上是函数方法名。

3、使用指南

这一块有很多人都写过,也写的很好。这里推荐一篇

Android高级动画(1)

4、总结

(1)通过看源码可以彻底明白补间动画的优缺点,实现原理及设计思路;

(2)只能实现平移、缩放、旋转、渐变的原因是这一套框架中的元数据Transformation 只保存了alpha和一个描述几何变换的矩阵。

(3)不支持自定义view的原因是动画模块的调用起点在viewgroup


/**

* This method is called by ViewGroup.drawChild() to have each child view draw itself.

*

* This is where the View specializes rendering behavior based on layer type,

* and hardware acceleration.

*/

boolean draw(Canvas canvas, ViewGroup parent, long drawingTime) {}

相关文章

  • Android动画原理分析(一)---补间动画

    1、基本特点 补间动画(Tween动画),是android最早的动画框架,从Android1.0开始就有。 功能:...

  • android动画之view动画

    前言: android动画中可以分为2种动画,view动画(补间动画)和属性动画(Animator)本文大概分析一...

  • Android 动画锦集

    Android 动画可分为逐帧动画、补间动画、属性动画。使用传统的逐帧动画、补间动画可以实现 Android 基本...

  • Android 基础动画之帧动画详解

    在上一篇 Android 基础动画之补间动画详解 主要介绍了补间动画的基本属性以及补间动画在Android起始设计...

  • Android补间动画原理分析

    补间动画有4种类型,平移,旋转,透明度,缩放。补间动画不会改变View的属性,只会改变显示效果.关于补间动画使用 ...

  • Android 动画总结

    Android 中的动画可以分为以下几类: 逐帧动画 补间动画 属性动画 一、逐帧动画 逐帧动画的原理就是让一系列...

  • Android 动画总结(2) - 帧动画

    Android 动画总结(1) - 概述Android 动画总结(3) - 补间动画Android 动画总结(4)...

  • Android 动画总结(1) - 概述

    Android 动画总结(2) - 帧动画Android 动画总结(3) - 补间动画Android 动画总结(4...

  • 安卓动画

    Android 中的动画可以分为以下几类: 逐帧动画 补间动画 属性动画 1、逐帧动画 逐帧动画的原理就是让一系列...

  • Android动画

    文章脑图 1、Android动画种类 逐帧动画、补间动画、属性动画 逐帧动画 逐帧动画的原理就是让一系列的静态图片...

网友评论

      本文标题:Android动画原理分析(一)---补间动画

      本文链接:https://www.haomeiwen.com/subject/xfrukctx.html