1.概述
Android的触控重采样算法非常出色。Android使用触摸外推和触摸内插的组合。触摸插值意味着我们接受两个触摸事件,并在两个触摸事件中间的某个位置创建一个触摸事件。触摸外推意味着我们进行两次触摸事件,并在上一次触摸事件之前的某个位置创建一个触摸事件,或者预测触摸事件的位置。让我们从60hz的LCD刷新显示速率和100hz的触摸屏刷新扫描速率来看一下我们的标准输入。
我们每10毫秒移动一次触摸输入事件,每10毫秒移动一次像素,每16.6毫秒刷新一次刷新显示vsync事件。Android的算法会创建一个称为“采样时间”的新计时事件,该事件始终比vsync事件晚5毫秒。因此,第一个采样时间为时间st = 11 ms(16个vsync时间-5个采样时间),然后下一个采样时间事件为时间st = 27 ms(32 ms vsync-5),下一个采样时间为43 ms( 48-5)。让我们看一下与采样时间相同的图:
采样时间用于平衡和确定触摸事件是外推还是内插。我们只看最后两个真实的触摸事件,而不看采样事件。如果最后一次触摸事件发生在采样时间之后,但在垂直同步时间之前,我们进行插值。例如,这发生在时间vsync t = 32 ms。采样时间为时间st = 27 ms