# AndroidAnimation
**Repository Path**: nngxy/android-animation
## Basic Information
- **Project Name**: AndroidAnimation
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-12-17
- **Last Updated**: 2020-12-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
本APP用于详细理解Android动画
Android动画分为2类
属性动画:资源目录为animator
视图动画:
包括补间动画:资源目录为anim
和帧动画:资源目录为drawable
1 帧动画实例:FrameAnimationActivity
帧动画是按照一定顺序和显示时间来展示一系列图片的动画,类似播电影。
XML定义主要元素:animation-list ,保存路径:res/drawable 中
对应类:AnimationDrawable
2 补间动画实例:TweenAnimationActivity
补间动画根据动画的起点、终点、大小、旋转情况和其他常见方面来计算动画。补间动画分为四种平移、缩放、旋转、透明度,也可以组合起来使用。
补间动画可对视图对象的内容执行一系列简单的转换(位置、大小、旋转情况和透明度)。
因此,如果您有一个 TextView 对象,则可以移动、旋转、放大或缩小文本。如果此对象具有背景图片,则该背景图片会与文本一同转换。
animation package 提供了补间动画所用的所有类。
XML定义元素:set alpha scale translate rotate
对应类:AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation、AnimationSet
3 属性动画实例:
属性动画系统是一个强健的框架,用于为几乎任何内容添加动画效果。您可以定义一个随时间更改任何对象属性的动画,无论其是否绘制到屏幕上。属性动画会在指定时长内更改属性(对象中的字段)的值。要添加动画效果,请指定要添加动画效果的对象属性,例如对象在屏幕上的位置、动画效果持续多长时间以及要在哪些值之间添加动画效果。
借助属性动画系统,您可以定义动画的以下特性:
时长:您可以指定动画的时长。默认时长为 300 毫秒。
时间插值:您可以指定如何根据动画的当前已播放时长来计算属性的值。
重复计数和行为:您可以指定是否在某个时长结束后重复播放动画以及重复播放动画多少次。您还可以指定是否要反向播放动画。
如果将其设置为反向播放,则会先播放动画,然后反向播放动画,直到达到重复次数。
Animator 集:您可以将动画分成多个逻辑集,它们可以一起播放、按顺序播放或者在指定的延迟时间后播放。
帧刷新延迟:您可以指定动画帧的刷新频率。默认设置为每 10 毫秒刷新一次,但应用刷新帧的速度最终取决于整个系统的繁忙程度以及系统为底层计时器提供服务的速度。
XML:objectAnimator \ animator \set
对应类:ValueAnimator、ObjectAnimator 或 AnimatorSet
4 矢量帧动画
矢量可绘制对象是一种无需像素化或进行模糊处理即可缩放的可绘制对象。借助 AnimatedVectorDrawable 类(以及用于实现向后兼容的 AnimatedVectorDrawableCompat),您可以为矢量可绘制对象的属性添加动画效果,例如旋转或更改路径数据以将其变为其他图片。
您通常在三个 XML 文件中定义添加动画效果之后的矢量可绘制对象:
一个矢量可绘制对象,其中 元素位于 res/drawable/
一个添加动画效果之后的矢量可绘制对象,其中 位于 res/drawable/
一个或多个对象 Animator,其中 元素位于 res/animator/
添加动画效果之后的矢量可绘制对象可以为 和 元素的属性添加动画效果。 元素定义一组路径或子组,而 元素定义要绘制的路径。
XML:animated-vector
对应类:AnimatedVectorDrawable
5 过渡框架
过渡框架表示具有 Transition 对象的场景之间的动画样式。
您可以使用多个内置子类(例如,AutoTransition 和 Fade)实例化 Transition,也可以定义自己的过渡。
然后,您可以将结束 Scene 和 Transition 传递到 TransitionManager.go(),以在场景之间运行动画。
过渡生命周期与 Activity 生命周期类似,它表示框架在动画开始和完成期间监控到的过渡状态。
在重要的生命周期状态下,框架会调用一些回调函数(您可以实现这些回调函数,以在不同的过渡阶段对界面进行调整)。
XML:transitionSet transitionManager transition
对应类:Scene 、Transition 、TransitionManager
6 ViewAnimator
参考文章:https://developer.android.google.cn/training/animation?hl=zh-cn
参考文章:https://developer.android.google.cn/guide/topics/resources/animation-resource?hl=zh-cn