# Android 一共有多少种动画?准确告诉你! ![Android 动画](https://cdn.jsdelivr.net/gh/ocnyang/gallery@master/github/androidanimationset/FnCS.gif) Android 动画在开发中是不可或缺的功能,或者说是界面灵动的添加剂。那你是否总结过 Android 中总共为开发者提供了多少种方式的动画呢?今天就为大家总结归纳一下。 ![报告老师,我知道](https://cdn.jsdelivr.net/gh/ocnyang/gallery@master/github/androidanimationset/JRYHqwhI.jpg) 我话音未落,前排那位骚气不减当年、故事布满双眼的大胸弟就激动得高高举起了那只满是老茧的右手:“我知道,我知道!都有平移动画、缩放动画、旋转动画、渐变动画、还有......” 看着这位兄弟回答时专注又冥思苦想的表情,我真不忍心伤害他那颗纯真的幼小心灵。于是我决定说一个谎:“这位同学,你说的太对了!你都知道的这么全面了还出来听课真是太辛苦了。这么热的天,不如回家吹吹空调、吃吃西瓜,把这次学习的机会让给更需要的人不挺好吗!” 看着那位兄弟一脸满足后远去的欢快背影,我终于可以放心的开始今天重点了。好了,上面内容纯属扯淡,转入正题。 > 本文章一部分教程图片来自网络,在这里先对这些图片的作者表示感谢。 ## 动画种类 Android 动画可以归纳为以下几种: * [视图动画(View 动画)](#1) * [帧动画(Frame 动画、Drawable 动画)](#2) * [属性动画](#3) * [触摸反馈动画(Ripple Effect)](#4) * [揭露动画(Reveal Effect)](#5) * [转场动画 & 共享元素(Activity 切换动画)](#6) * [视图状态动画(Animate View State Changes)](#7) * [矢量图动画(Vector 动画)](#8) * [约束布局实现的关键帧动画(ConstraintSet 动画)](#9) 上面动画分类是个人通过每种动画种类概念的独立性来划分的,目前能想到的只有这么多,如果有所遗漏大家可以指点出来以供我后续完善。 可能有很多人迅速的反应出,缺少了目前使用也相对较多的 **[airbnb/lottie-android](https://github.com/airbnb/lottie-android)** 动画。不可置疑,Lottie 库目前在 Android 开发中尤其复杂动画效果上地位显著。但我们今天要是的 Android 原生上为我们提供的能使用的动画方式,Lottie 动画今天暂且搁置。同时对于 RecyclerView item 加载动画今天也暂且不提。我们且把这些动画归为其他,并不是把它们遗忘了。 ## 详尽教程 对于上面列举的动画种类,可能大家对部分较常用的动画早已熟练应用,比如 View 动画、属性动画等。而对部分较少使用(比如 揭露动画)、或者常常使用却从未意识到它也属于动画的一种(比如 触摸反馈动画)知道的并不是那么全面。“那么今天就一一为大家详细讲解每种动画的概念”,那是不可能滴~~,就这么点篇幅,这么可能把每种动画都细说下来。 要这些动画一一梳理清晰,那将是一项浩大的工作,而我已经为大家总结成了一个**《详尽 Android 动画系列教程》**,大家可以到 [https://github.com/OCNYang/Android-Animation-Set](https://github.com/OCNYang/Android-Animation-Set) 进行查看,由于动画知识点涉及的太多而教程详细程度令人发指,大家可以收藏起来慢慢查看。另外总结的教程中每种动画都提供了动画示例,大家可以结合源码细细品味。(上面总结的系列教程,大多数都是借用前人总结的教程,选用的都是针对每种动画网上流传的最详细全面的教程,在梳理中对部分错误也进行了更正。) 那今天的任务是什么呢?接下来主要通过粗略的介绍来讲解每种动画在开发中都适用在哪种场景。