今天我们要看的动画是 Custom Evaluator,这个也是属性动画一个实现效果。我们呢今天主要看的重点是 Evaluator ,这个也是我们在前面提到过,先来看一下动画实现的效果:
11
这次我们就看一下核心代码,也就是 Evaluator 的实现

这个就是 XYEvaluator 的是实现了对 XYHolder 的 X 和 Y 的值进行了处理,主要是进行的相减操作。我之前简单介绍过 TypeEvaluator ,它是系统定义的一个用来动画过渡规则的接口,只有一个 evaluate 方法。在 evaluate 方法里主要实现过渡规则。之前我们看到的是它 ArgbEvaluator 的实现,这次我们是自定义实现的 XYHolder,处理都是一样的 由初始值加上 fraction*(endvalue – startvalue)也就是完成度。在动画开始后,系统会调用我们实现的 XYEvaluator 对弹球进行 X 和 Y 坐标的一个过渡就完成了。
其实 TypeEvaluator 实现还是比较单一,只要我们按照规则处理数值就可以,我们现在看到的是比较简单的,当前也可以实现更复杂的,比如再加上颜色的变化,我们先来看一下效果:
12
这个我们只是简单的加上了颜色从蓝到红得变化,是怎么实现的呢?首先我们对 XYHolder 进行了一下改造,让它支持 color 的参数,就是 get set 方法没什么好看的,然后就是对 XYEvaluator 进行改造了,我们看一下:

有木有很眼熟,我们只是把 ArgbEvaluator 直接拿过来了而已,这样就能轻松实现在坐标变换的同时颜色也随之变化的动画效果了。
总的来说了 ApiDemos 给出的都是一些很简单的示范,我们要学会举一反三才能真正掌握。

发表评论

电子邮件地址不会被公开。 必填项已用*标注