作者:Ken.He
由于项目需要,需要对各个app窗口中的控件进行滑动,并截图,最后拼接。其核心难点就在于滑动,包括它滑动的判断,滑动的距离计算等等。截图与拼接部分这里不详述。
计算滑动的距离,原理其实很简单,就是: 滑动后的位置(终点)- 滑动前的位置(起点)= 滑动距离。
这里介绍一下如何计算RecyclerView与ListView实际滑动距离(当前仅限由下向上滑动一种情况)。
一、RecyclerView:
RecyclerView 作为一个新兴的列表控件,是Android L版本中新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比listview更好。RecyclerView与ListView原理是类似的:都是仅仅维护少量的View并且可以展示大量的数据集。RecyclerView用以下两种方式简化了数据的展示和处理:
a.使用LayoutManager来确定每一个item的排列方式。
b.为增加和删除项目提供默认的动画效果。
既然item都交给了LayoutManager来管理,那我们就从它入手。先来看一下需要用到的几个方法:
findFirstVisibleItemPosition();//获取显示在屏幕上可见的第一个子View在列表上对应的position
findLastVisibleItemPosition();//获取显示在屏幕上可见的最后一个子View在列表上对应的position