Android框架的哪个部分负责播放动画?

4

这个问题相关,我正在尝试找出Android类库中负责播放Animation的部分。查看源代码,动画类似乎仅计算动画对象所经历的变换,但它们并不负责实际“播放”动画,即在给定的帧速率下将转换后的对象渲染到屏幕上。

我已经花了一些时间来筛选ViewImageView的源代码,但我无法确定实际绘制每个变换到屏幕上的代码位于哪里。

有什么想法吗?

为了澄清,我知道要播放动画,只需将其放入View中并调用startAnimation,但我想了解View或相关类的哪些部分实现了这些功能。

1个回答

0
你应该查看 Android 代码。从 View 类的 startAnimation 方法开始。我认为,在视图类中,应用变换后它会调用 invalidate(),剩下的就交给了图形引擎。

Android 文档说:

Tweened 动画是由此包(android.view.animation)处理的;逐帧动画由 AnimationDrawable 类处理。

这里获取整个摘要。


是的,我查看了源代码。startAnimation除了将动画置于“启动模式”之外,什么也不做。里面没有绘图逻辑。invalidate()只会导致调用draw方法。据我所知,draw方法中也没有动画逻辑。 - mxk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接