首页 > 解决方案 > 如何使用 Choreographer 将动画与 VSync 同步?

问题描述

当我使用 Choreographer 时,我想它会每 16 毫秒触发一次 doFrame 以与 vSynch 同步。但是当我查看日志时,情况并非如此:

04-04 01:02:13.430: I/doFrame(5348): 83955391747085
04-04 01:02:13.443: I/doFrame(5348): 83955405796564
04-04 01:02:13.451: I/doFrame(5348): 83955413367397
04-04 01:02:13.461: I/doFrame(5348): 83955421952814
04-04 01:02:13.468: I/doFrame(5348): 83955430145522
04-04 01:02:13.474: I/doFrame(5348): 83955438113751
04-04 01:02:13.497: I/doFrame(5348): 83955460370652
04-04 01:02:13.515: I/doFrame(5348): 83955477302114
04-04 01:02:13.532: I/doFrame(5348): 83955494233669
04-04 01:02:13.549: I/doFrame(5348): 83955511161610

如您所见,每次调用 doframe 之间的时间都小于 16 毫秒。所以现在我不明白 Choreographer 是如何工作的 :( 调用 Choreographer.postFrameCallback 到底是什么意思?怎么可能在 2 个 doFrame 事件之间只有 7 毫秒?

标签: androidandroid-studioanimationvsync

解决方案


推荐阅读