动画

参考链接:

官方文档链接:Animation and Graphics Overview

Android 开发进阶:自定义 View 1-6 属性动画(上手篇)

Android 开发进阶:自定义 View 1-7 属性动画(进阶篇)

Android动画可以分为以下三种:

Property Animation

View Animation

Drawable Animation

而现在我们用得比较多,官方也比较推荐的就是第一种,属性动画。所以接下来只讲属性动画。

ViewPropertyAnimator、ObjectAnimator、ValueAnimator 这三种 Animator,它们其实是一种递进的关系:从左到右依次变得更加难用,也更加灵活。但它们的性能是一样的,因为 ViewPropertyAnimator 和 ObjectAnimator 的内部实现其实都是 ValueAnimator,ObjectAnimator 更是本来就是 ValueAnimator 的子类,它们三个的性能并没有差别。它们的差别只是使用的便捷性以及功能的灵活性。

1.ViewPropertyAnimator

通过view.animate()就会返回一个这个对象,使用默认提供的方法就可以实现很多动画,默认时长是300ms,也可以修改


动画_第1张图片

2.ObjectAnimator

使用方式:

如果是自定义控件,需要添加 setter / getter 方法;

用 ObjectAnimator.ofXXX() 创建 ObjectAnimator 对象;

用 start() 方法执行动画。

可以调用setInterpolator给定各种各样的插值器

3.ValueAnimator

ValueAnimator 是 ObjectAnimator 的父类,实际上,ValueAnimator 就是一个不能指定目标对象版本的 ObjectAnimator

4.TypeEvaluator

当需要对其他类型(除了简单的ofInt,ofFloat等等之外)来做属性动画的时候,就需要用到 TypeEvaluator 了,继承这个类实现自己的对象类型变换

5.其他

「关于复杂的属性关系来做动画」,就这么三种:

使用 PropertyValuesHolder 来对多个属性同时做动画;

使用 AnimatorSet 来同时管理调配多个动画;

PropertyValuesHolder 的进阶使用:使用 PropertyValuesHolder.ofKeyframe() 来把一个属性拆分成多段,执行更加精细的属性动画。

你可能感兴趣的:(动画)