美文网首页
Android 动画机制

Android 动画机制

作者: Yangxy_Lazy | 来源:发表于2018-03-19 11:41 被阅读0次

    一、Android的动画的分类:(实现方式有:xml资源文件方式,代码方式)

        逐帧动画(Drawable Animation):即顺序播放事件做好的图像,跟电影类似。

        补间动画:通过对场景里的对象不断做图像变换(平移,缩放,旋转)产生动画效果。

        属性动画:补间动画增强版,支持对对象执行动画。

        过渡动画:实现Activity或者View间的过度动画效果。

    二、Android逐帧动画:

        xml资源文件方式:(android:oneshot用来控制是否循环播放,true代表不会循环播放,false表示会循环播放。android:duration="200"表示每一帧持续播放的时间)

        逐帧动画的代码方式:

    三、Android补间动画:不需要关心每一帧,只需要定义动画开始和结束两个关键帧,并指定动画变化的时间与方式等。

    透明度变化   alph      AlphaAnimation :渐变透明度动画效果

    大小缩放变化    scale   ScaleAnimation:渐变尺寸伸缩动画效果

    位置变换      translate   TranslateAnimation   画面转换位置移动动画效果

    旋转变换     rotate    RotateAnimation    画面转移旋转动画效果

    插值器(Interpolator:时间插值器,定义东环变换的速度):Android系统会在补间动画开始和结束关键帧之间插入渐变值,它依据差值器。

    举例:xml方式:

    代码方式:

        四、Android属性动画:(Animator)

    补间动画的增强版,由于补间动画只能够在视图View上,无法对非View的对象进行动画的操作。并且其没有改变View的属性,只是改变了视觉效果。

    属性动画的特点:任意Java对象,不再局限于视图View对象,实现的动画效果不局限于4种基本变换(平移,旋转,缩放,透明度)

    工作原理:在一定的时间间隔内,不断对值进行改变,并不断将值赋给对象的属性,从而实现该对象在该属性上的动画效果。

    属性动画基类:Animator,抽象类。子类有两个重要的类:ValueAnimator和ObjectAnimator,Evaluator,AnimatorSet.

    单一动画实现的效果相当有限,更多的场景是同时适用多种动画效果,即组合动画。

    xml方式:

        Java方式:

        递归绘制的方法:

    1、绘制背景 

    2、如果需要,保存画布(canvas),为淡入淡出做准备 

    3、通过调用View.onDraw(canvas)绘制View本身的内容 

    4、通过 dispatchDraw(canvas)绘制自己的孩子,dispatchDraw->drawChild->child.draw(canvas) 这样的调用过程被用来保证每个子 View 的 draw 函数都被调用 

    5、如果需要,绘制淡入淡出相关的内容并恢复保存的画布所在的层(layer) 

    6、绘制修饰的内容(例如滚动条) 

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

    相关文章

      网友评论

          本文标题:Android 动画机制

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