应用开发一般不直接使用这个类,而是使用更高层级的类和方法。
- 要开始 一个动画,使用 android.animation.ValueAnimator.start
- 要在下一帧开始时,提交一个Runnable,使用 View.postOnAnimation
- 要从下一帧开始延时提交一个Runnable,使用 View.postOnAnimationDelayed
- 要在下帧开始时,提交View.invalidate(),使用View.postInvalidateOnAnimation() or View.postInvalidateOnAnimation(int, int, int, int).
- 为了保证一个视图的内容可以流畅滚动,并与显示帧同步渲染,无需做任何工作。 View.onDraw会在合适的时间被系统调用。
那什么时候会直接使用 Choreographer 呢? 如果你的应用是在不同的线程执行渲染,可能是使用GL,或是完全不使用动画框架和视图结构时,你希望可以保证与显示帧同步渲染,此时可以使用 Choreographer 类的postFrameCallback(Choreographer.FrameCallback callback) 这个方法。
Choreographer 是与 Looper相关联的。 每一个Looper线程都有自己的Choreographer ,其他线程也可以提交 FrameCallback 到Choreographer上运行,但它们会在Choreographer 所属的Looper上运行。
|