知识体系四:Android动画工作原理

 我来答
华源网络
2022-07-13 · TA获得超过5581个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:145万
展开全部
1.Android 动画的工作原理?
在android系统中动画分为两种分别是帧动画和属性动画。对于动画的工作原理主要涉及到的是帧动画的实现。
帧动画主要有旋转RotatleAnimation,缩放ScaleAnimation,透明AlphaAnimation,平移TranslateAnimation等都是Animation的子类。Animation控制动画的效果,Transformation 对动画进行计算。
对于动画的原理简单说就是从一个动画的启动状态,到动画结束状态,和动画持续总时间,在这段时间中任一时间点动画的状态计算和显示的过程。
计算 :是通过Animation的getTransformation()方法首先对时间进行归一化时间让时间在0~1之间,进行计算。满足条件之后就会调用applyTransformation()方法处理实现动画类型的计算。当前时间点的转换状态保存到Transformation 的Matrix中等待显示的时候使用。
显示 :动画显示工作主要依赖于Choreograther类,此类是线程唯一的,Choreograther和Handler用法类似,都是通过post一个Runnable对象到队列中等待VSYSC屏幕垂直同步信号刷新(16ms)刷新一次,然后触发ViewRootImpl的view的遍历工作,回调到view.draw()方法时就会把之前applyTransformation 计算的此时刻的Transformation 的Matrix赋值到Canvas上, 这也就是为什么我们使用帧动画时候我们的view的属性并没有改变,这就是根源因为计算得到的Matrix被Canvas使用了,并没有直接赋值到我们的view上。 对于属性动画来说主要使用animator实现看下面解析:

2.Animation 和 Animator 的区别?
Animation和Animator都是抽象类,都有子类,Animation通过Transformation对动画进行Matrix转换来作用到Canvas上实现动画效果。而Animator只是一个工具类,主要是用来控制在一段时间内某一个值的变化过程,然后我们再根据这个值来作用到view的属性上,以此来实现动画效果。为了让这个变化的过程能达到加速减速等变化效果系统提供了插值器Interpolator。他们的实现思想都是一致的。

3.帧动画 和 属性动画的区别?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式