From 29f33cb67b7a215a5e6fa614f645a04f0b0ed249 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Wed, 8 Jul 2020 11:11:40 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E5=8A=A8=E7=94=BB=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8F=A3=E6=B0=B4=E8=AF=9D.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blogs/Android/口水话/动画相关口水话.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/blogs/Android/口水话/动画相关口水话.md b/blogs/Android/口水话/动画相关口水话.md index 076c414..a5afb54 100644 --- a/blogs/Android/口水话/动画相关口水话.md +++ b/blogs/Android/口水话/动画相关口水话.md @@ -6,7 +6,7 @@ 1. 三种动画 2. 插值器、估值器 -3. 动画源码 +3. 实现原理 #### 三种动画 @@ -20,3 +20,8 @@ 自定义插值器更简单,只需要实现 TimeInterpolator 或 Interpolator,系统也内置了几种实现,默认是先加速后减速,即 AccelerateDecelerateInterpolator,看一下源码发现不过是余弦函数在 pi/2 到 pi 直接,也就是先加速后减速。 +#### 实现原理 + +补间动画的实现是在 View 的 draw 方法里,会去调用 TranslateAnimation 等的 applyTransformation 方法,这个方法其实就是对 View 矩阵进行变换。 + +属性动画是在其内部创建一个 AnimationHandler,这个 AnimationHandler 有三个 ArrayList,分别表示活动动画、下一帧动画以及延时动画。它里面通过注册一个 Choreographer 回调去真正的执行动画。 \ No newline at end of file