(九)View的滑动事件

View提供获取坐标的方法:
 getTop(),getLeft(),getRight()和getBottom()。
 获取的是View自身到父布局上下左右的距离。

MotionEvent提供的方法:
getX()和getY()方法获取的是点击事件距离控件左上的距离。即视图坐标。
getRawX()和getRawY()是获取的是点击事件距离整个屏幕顶边的距离,是android坐标系的坐标,是绝对坐标。
:在用getRawX()和getRawY()方法来计算偏移量时,需重新设置初始位置。

系统判断是否滑动的依据为与常量TouchSlop比较,小于则认为不滑动。该常量的获取方法如下:
(九)View的滑动事件
(九)View的滑动事件(九)View的滑动事件

VelocityTracker 速度追踪
(九)View的滑动事件(九)View的滑动事件


实现滑动的方法:
1.layout方法,在自定义的view中。
(九)View的滑动事件(九)View的滑动事件
2.offsetLeftAndRight()和offSetTopandBottom()方法,与上述方法layout相同。
(九)View的滑动事件(九)View的滑动事件

3.LayoutParams参数
(九)View的滑动事件(九)View的滑动事件
4.scrollTo(x,y)与scrollBy(x,y)
   scrollTo(x,y)表示移动到一个具体的坐标点,scrollBy(x,y)表示移动的增量为x和y
   这两个方法移动的是View的content。其中值的正负,与mScrollX(mScrollY)和x(y)的比较有关,mScrollX(mScrollY )等于View的左边缘与View内容左边缘在水平(竖直)方向的距离。
(九)View的滑动事件
(九)View的滑动事件
5.scroller类,本身不能实现滑动,需与computeScroll()方法配合才能完成弹性滑动。startScroll方法只是赋值作用,关键在之后invalidate方法。
(九)View的滑动事件(九)View的滑动事件

6.ViewDragHelper