首页 > 其他分享 >动画之复习

动画之复习

时间:2022-09-19 12:01:43浏览次数:68  
标签:动画 复习 插值 计算 补间 属性 View

一、动画

  • tween 补间动画。通过指定View的初末状态和变化方式,对View的内容完成一系列的图形变换来实现动画效果。 Alpha, Scale ,Translate, Rotate。
  • frame 帧动画。AnimationDrawable控制animation-list.xml布局
  • PropertyAnimation 属性动画3.0引入,属性动画核心思想是对值的变化。

Property Animation 动画有两个步聚:

1.计算属性值

2.为目标对象的属性设置属性值,即应用和刷新动画

image

计算属性分为3个过程:

过程一:

计算已完成动画分数 elapsed fraction。为了执行一个动画,你需要创建一个ValueAnimator,并且指定目标对象属性的开始、结束和持续时间。在调用 start 后的整个动画过程中,ValueAnimator 会根据已经完成的动画时间计算得到一个0 到 1 之间的分数,代表该动画的已完成动画百分比。0表示 0%,1 表示 100%。

过程二:

计算插值(动画变化率)interpolated fraction 。当 ValueAnimator计算完已完成的动画分数后,它会调用当前设置的TimeInterpolator,去计算得到一个interpolated(插值)分数,在计算过程中,已完成动画百分比会被加入到新的插值计算中。

过程三:

计算属性值当插值分数计算完成后,ValueAnimator会根据插值分数调用合适的 TypeEvaluator去计算运动中的属性值。 以上分析引入了两个概念:已完成动画分数(elapsed fraction)、插值分数( interpolated fraction )。

原理及特点:

1.属性动画:

插值器:作用是根据时间流逝的百分比来计算属性变化的百分比

估值器:在1的基础上由这个东西来计算出属性到底变化了多少数值的类

其实就是利用插值器和估值器,来计出各个时刻View的属性,然后通过改变View的属性来实现View的动画效果。

2.View动画:

只是影像变化,view的实际位置还在原来地方。

3.帧动画:

是在xml中定义好一系列图片之后,使用AnimatonDrawable来播放的动画。

它们区别:

属性动画才是真正的实现了 view 的移动,补间动画对view 的移动更像是在不同地方绘制了一个影子,实际对象还是处于原来的地方。 当动画的 repeatCount 设置为无限循环时,如果在Activity退出时没有及时将动画停止,属性动画会导致Activity无法释放而导致内存泄漏,而补间动画却没问题。 xml 文件实现的补间动画,复用率极高。在 Activity切换,窗口弹出时等情景中有着很好的效果。 使用帧动画时需要注意,不要使用过多特别大的图,容导致内存不足。

为什么属性动画移动后仍可点击?

播放补间动画的时候,我们所看到的变化,都只是临时的。而属性动画呢,它所改变的东西,却会更新到这个View所对应的矩阵中,所以当ViewGroup分派事件的时候,会正确的将当前触摸坐标,转换成矩阵变化后的坐标,这就是为什么播放补间动画不会改变触摸区域的原因了。

 

标签:动画,复习,插值,计算,补间,属性,View
From: https://www.cnblogs.com/awkflf11/p/16707263.html

相关文章

  • 20. 补间动画
    20.补间动画给动画设置一个初始值以及一个结束值,加上一个动画时间,Android系统自动补全。20.1补间动画分类alpha透明度rotate旋转scale缩放translate平移20......
  • 19. 帧动画
    19.帧动画把几张图片进行快速播放形成的动画。19.1素材准备8张图19.2创建animation-list集合<?xmlversion="1.0"encoding="utf-8"?><animation-listxmlns:and......
  • css简单动画 @-webkit-keyframes、-webkit-transform、webkit-animation的使用
    浏览器前缀IE10和Firefox(>=16)支持没有前缀的animation,firefox(<16)使用-moz-前缀,因为现在firefox的版本也都不低,所以firefox都直接使用没有前缀的animation。而chrome,safa......
  • 复习笔记
    列表生成式:[x*2forxinrange(10生成器(generatorobject)​创建生成器两种方式:1(x*2forxinrange(10))>>>>>>>>>>>generatorobject2deff():......
  • Unity基础笔记(5)—— Unity渲染基础与动画系统
    Unity渲染基础与动画系统Unity渲染基础一、摄像机1.摄像机概念和现实中的摄像机很接近,Unity中Camera组件负责将游戏画面拍摄然后投放到画面上Camera拍摄到的画......
  • NOIP 前的复习乱写
    莫队询问是二维的莫队把询问抽象成平面上的点\((x,y)\),那么处理两个询问间的指针移动就是两点之间的曼哈顿距离。我们需要构造一个处理点的顺序来使得指针移动和尽量小......
  • Trie 一轮复习
    字典树字典树,顾名思义,就是一个像字典一样的树。——OI-wiki普通Trie如图:Trie用边代表字母,那么从根节点到某个节点的路径表示一个字符串。Trie支持的操作有三......
  • [CG] 顶点动画贴图 (Vertex Animation Texture, VAT)
    什么是顶点动画?简单来说,通过改变网格顶点的位置,使网格变形从而做成的动画。顶点动画的灵活度要远远高于骨骼动画。骨骼动画是靠骨骼(一堆有层级结构的节点,数量应该是远远小......
  • c语言数据结构复习
    c语言数据结构复习第1章:基本概念第2章:线性结构2.1--线性表及其实现2.1.1-引子:多项式及其表示法1:顺序存储直接表示多项式法2:用顺序存储结构表示多项式说明:以上例......
  • Java8Stream流复习和api总结
    构建方式list.stream();Stream.of(list);基础常用APIStream<Number>stream=list.stream();//获取最大值stream.max(比较器);//获取最小值stream.min(比较器);......