pinchOut() 和pinchIn() 方法有俩个需传入的参数int percent, int steps
percent即从1到100的整数,percent值越大,滑动的范围就越大。通过这个值的设置,可以避免从在界面上滑动某些死角位置开始滑动。
steps字面意思是步骤,其实这个值是滑动速度。在做拖动动作(scroll steps)时,源码默认设置的steps值为55,在做滑动动作(fling steps)是,源码默认为5。即,该值越小,滑动的速度越快,最小值为2,即达到最快滑动速度。这个可以通过源码看出来。
steps是的实际意思是,我们执行一个动作将该动作划分的步骤,这一部分不需研究的人可以略过。举个例子来说吧,我们做最快滑动动作,即steps = 2,我们执行滑动距离为x,我们将x划分成了两部分(即 x / steps),真正执行滑动动作是,先在起始点按下touchDown,从起始点以一个未知速度(最快滑动速度,比人在界面能做的最快滑动块吧?或许呢,我也不知道。)滑动到x的二分之一处,再休息MOTION_EVENT_INJECTION_DELAY_MILLIS(该值为5ms)。然后又执行下一个滑动的动作,最后,在终点touchUp。这样,即实现最快速度的滑动。懂了吧?!~好吧,不懂你看看源码吧= =
执行这俩个方法时,首选他会通过findAccessibilityNodeInfo方法去查找调用该方法的对象是否存在。
然后,当该对象存在时候,得到该对象可视的bounds,通过这个bounds来计