在上一个项目和开发对还原的时候,有一个动效,调来调去总是感觉不对,于是用了 iPhone 的高速摄影,回看的时候发现有跳帧, 造成了动效的不连贯。
和开发交流之后,发现根本的原因是安卓机性能的问题。
一般我们用 AE设计动效的时候是60帧/秒,也就是16.6毫秒/帧(1秒=1000毫秒/60帧)。60帧/秒是一个很理想的状态,大多数时候,安卓机可以跑到50几帧就不错了。
同时人眼感知连续动画,并且使用不卡的底线是20毫秒。
基于以上2点怎么去做到连续的动效呢?
首先,还是用60帧一秒在 AE 中设计。
然后,标注时用16毫秒一帧。为什么这样做呢? 首先0.6毫秒没有办法被大脑感知。其次Android系统是每隔16ms发出VSYNC信号,触发对UI进行渲染,那么整个过程如果保证在16ms以内就能达到一个流畅的画面。
还有一个经验方法是,适当的拉长有些动画,加个5-10帧。有的动效时间过短,用户会感觉有点跳,这时候把动效加点时间,拉长一点会好些。
PS: 关于安卓系统使用刷新频率的知识可以看这里:https://www.zhihu.com/question/36251637/answer/77005934