public final class Choreographer
extends Object
java.lang.Object | |
↳ | android.view.Choreographer |
协调动画,输入和绘图的时间。
编排者从显示子系统接收定时脉冲(如垂直同步),然后安排工作作为渲染下一个显示框的一部分。
应用程序通常使用动画框架或视图层次结构中的更高级别抽象来间接与编舞人员进行交互。 以下是您可以使用更高级别的API执行的一些示例。
start()
.Runnable
to be invoked once at the beginning of the next display frame, use postOnAnimation(Runnable)
.Runnable
to be invoked once at the beginning of the next display frame after a delay, use postOnAnimationDelayed(Runnable, long)
.invalidate()
to occur once at the beginning of the next display frame, use postInvalidateOnAnimation()
or postInvalidateOnAnimation(int, int, int, int)
.View
scroll smoothly and are drawn in sync with display frame rendering, do nothing. This already happens automatically. onDraw(Canvas)
will be called at the appropriate time.但是,有些情况下您可能希望直接在应用程序中使用编排器的功能。 这里有些例子。
postFrameCallback(Choreographer.FrameCallback)
.每个Looper
线程都有自己的编舞。 其他线程可以发布回调以在编排器上运行,但它们将在编排器所属的Looper
上运行。
Nested classes |
|
---|---|
interface |
Choreographer.FrameCallback 在呈现新的显示帧时,实现此接口以接收回调。 |
Public methods |
|
---|---|
static Choreographer |
getInstance() 获取调用线程的编排者。 |
void |
postFrameCallback(Choreographer.FrameCallback callback) 发布帧回调以在下一帧上运行。 |
void |
postFrameCallbackDelayed(Choreographer.FrameCallback callback, long delayMillis) 在指定的延迟后发布帧回调以在下一帧上运行。 |
void |
removeFrameCallback(Choreographer.FrameCallback callback) 删除以前发布的框架回调。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Choreographer getInstance ()
获取调用线程的编排者。 必须从已经有Looper
关联的线程调用。
Returns | |
---|---|
Choreographer |
The choreographer for this thread. |
Throws | |
---|---|
IllegalStateException |
if the thread does not have a looper. |
void postFrameCallback (Choreographer.FrameCallback callback)
发布帧回调以在下一帧上运行。
回调运行一次然后自动删除。
Parameters | |
---|---|
callback |
Choreographer.FrameCallback : The frame callback to run during the next frame. |
void postFrameCallbackDelayed (Choreographer.FrameCallback callback, long delayMillis)
在指定的延迟后发布帧回调以在下一帧上运行。
回调运行一次然后自动删除。
Parameters | |
---|---|
callback |
Choreographer.FrameCallback : The frame callback to run during the next frame. |
delayMillis |
long : The delay time in milliseconds. |
void removeFrameCallback (Choreographer.FrameCallback callback)
删除以前发布的框架回调。
Parameters | |
---|---|
callback |
Choreographer.FrameCallback : The frame callback to remove. |