Translation MotionLayout 📅 2026/7/6 20:36:26 1、简介1.1 Android中动画Android原生动画主要有三种:View动画,在Activity切换时会用到,这个是最早引入的动画,在API 1的时候引入;属性动画,目前最常使用的动画,在API 11引入。常用于实现平移、缩放、旋转以及一些自定义动画效果;过渡动画,在API 18开始引用,主要用于实现两个状态间的平滑过度。由于被引入的比较晚,要考虑前版本的适配问题,而没有大规模被使用。最近几年不用再考虑兼容API 18及以前版本,开始逐渐的流行起来。1.2 属性动画和过渡动画看一个示例,用属性动画实现,点击后从左边移动到右边。我们知道代码是为需求做服务的,上面的需求是把控件从左边移动到右边,而我们需要先计算移动的距离,再进行移动。跟需求描述相比,代码多了计算的步骤。我们通过直接修改布局的属性来改变控件的位置,这样代码实现更加符合需求的描述。不过可以看出来这样实现,是直接变过去,没有动画,显得非常生硬。因此,加入过渡动画优化一下:如此即带有了动画的效果,并且代码是真正按照需求来执行。当然这里举的是简单的属性动画例子,实际上像缩放、平移、旋转等都可以用过渡动画实现,只需要指定修改的属性,不需要像属性动画那样,计算变化的高度、宽度、距离、角度等。由此我们看出,过渡动画主要是一种思路上的转变。它让我们关注在开始和结束的状态,中间的动画变化由动画框架帮助我们完成。从而让开发者更加聚焦在需求的开发上。2、过渡框架源码分析过渡动画主要关注两个场景,开始场景和结束场景。而中间的动画过程由框架帮我们完成。从开始场景到结束场景的转变,就是过渡动画。前面使用TransitionManager.beginDelayedTransition()方法,就实现了过渡动画的效果。接下来我们通过解析它的源码,理解过渡动画的原理。