android 属性动画源码分析

本文主要介绍了Android属性动画的原理,分析了其使用、插值器、估值器和源码实现。属性动画可以作用于任何对象,不仅限于View,通过插值器计算进度并由估值器确定具体属性值。文章详细探讨了插值器和估值器的实现,以及源码中如何运用策略模式。最后,通过对ObjectAnimator关键方法的源码分析,揭示了属性动画的执行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.引言

android动画相信大家已经不陌生了,我们知道android动画大致分为以下四类

逐帧动画【Frame Animation】,即顺序播放事先准备的图片。

–使用:xml中定义一系列图片资源,然后开始动画即可,例如android的开机动画

补间动画【Tween Animation】,View的动画效果可以实现简单的平移、缩放、旋转。

–使用:定义开始和结束、持续时间,通过基本动画平移、旋转、缩放、透明度,组合AnimationSet

属性动画【Property Animation】,补间动画增强版,支持对对象执行动画。

–使用:ObjectAnimator和ValueAnimator,当然说到属性动画,肯定离不开估值器和插值器

过渡动画【Transition Animation】,实现Activity或View过渡动画效果。包括5.0之后的MD过渡动画等。

四种动画的实现方式,都有相应的xml方式和java代码方式。有人会问,有了帧动画和补间动画,为什么android还要弄属性动画呢?是因为有需求场景,前面两者无法实现吗?恭喜各位看官,你都会抢答了!!!

的确有这方面的原因,我们知道帧动画和补间动画是作用于View的,如果是非View对象的话,无法产生动画的效果。有人会追问,动画不是就应该是对于view的吗?对于一个对象,我弄个动画,有啥用?实际上不是,假设我们view里面是一个自定义view,在onDraw中根据外界传的Point对象来绘制。也就是说,如果我们对Point对象进行动画效果,那么

评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itbird01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值