Android的三种动画:
帧动画: 像电影片段一样,由一张一张的图片组成的一组动画效果,效果比较多样化,实现种类多,缺点是资源消耗过大,繁琐。
补间动画:和帧动画一样,android3.0之前(API11)前的,补件动画的特点是,只能作用于View上,比如button,TextView,linelayout等等上面。并且动画效果只是视觉上的效果,其view组件还是在原来位置。
属性动画:属性动画是在android3.0之后出来的,其目的就是改善,解决补间动画的不足,所以属性动画的使用的地方就比较广泛,不单单是简单的view上,而是java对象,并且组件的位置也会根据动画效果而改变。实现效果也不再那么单一。
属性动画本质原理:
通过不断对值发生改变,并不断把该值赋值给对象的属性,从而实现该对象在该属性上的动画效果。(下附逻辑图)
属性动画逻辑图
属性动画介绍:
属性动画使用到的两个方法类:ValueAnimator和objectAnimator。
两个辅助使用类:插值器 和 估值器
1):ValueAnimator:
定义:属性动画中最核心的一个类。
实现动画原理:通过不断控制 值 的变化,然后 手动 赋值给对象的属性,从而实现动画效果。
ValueAnimator中重要的三个方法:
ValueAnimator.ofInt(int values)
ValueAnimator.ofFloat(float values)
ValueAnimator.ofObject(int values)
2):ObjectAnimator:直接对对象的属性值发生改变操作,从而实现动画效果。
本质原理:通过不断控制 值 的变化,然后 自动赋值给对象的属性,实现动画效果。
ValueAnimator和ObjectAnimator区别:
原理上:
ValueAnimator类是先改变值,然后手动赋值给对象的属性从而实现动画;是间接对对象属性进行操作;
ObjectAnimator类是先改变值,然后自动赋值给对象的属性从而实现动画;是直接对对象属性进行操作。
两者类之间的区别:
其实二者都是属于属性动画,本质上是一样的,都是先改 变值,然后赋值给对象属性,从而实现动画操作。
但二者区别就在与,ValueAnimator类是 手动 赋值给对象的属性,从而实现动画,是间接对对象属性进行操作。
ValueAnimator 类本质上是一种 改变 值 的操作机制。而ObjectAnimator类,是 自动 赋值给对象的属性,从
而实现动画操作。是直接对对象属 性进行操作。可以理解为ObjectAnimator类更加智能,自动化程度更高。
3):插值器(Interpolator)
定义:Android实现动画效果中的一个辅助类
作用:1:设置 属性值 从初始值过渡到结束值的变化规律
2:如匀速,加速,减速等等
3:即确定了动画效果变化的模式,如匀速变化,加速变化等等。
应用场景: 1:实现非线性运动的动画效果。
2:非线性运动定义为:动画改变的速率不是一致的。
3:如加速,减速,都是非线性运动。
4):估值器(TypeEvaluator)
定义:Android实现动画效果的一个辅助接口。
作用:1:设置 属性值 从初始值过渡到结束值的变化具体数值
2:插值器(Interpolator)决定 值 的变化规律(匀速、加速...),即决定的是变化趋势,而接下来的
具体变化数据交给估值器。
3:属于属性动画特有的属性。
应用场景:1:协助插值器完成非线性运动的动画效果。
2:非线性运动定义:动画改变的速率不是一致的。
3:如加速,减速,都是非线性运动。
估值器与插值器的区别:
估值器与查之前的区别
以及属性动画所涉及到的重要的类:(附图如下)
属性动画涉及到的重要的类
本篇文章参考与作者:Carson_Ho
网址:https://www.jianshu.com/p/2412d00a0ce4
参考作者简介网址:https://www.jianshu.com/u/383970bef0a0
注:参考这篇文章的作者,总结的笔记甚是牛批,大家可以通过上方网址去访问参考。