1,View的位置参数
View的位置坐标和父容器的关系.png此时,View的宽高和坐标的关系为:
width = right-left;
height = bottom-top;
从Android3.0开始,View增加了额外的几个参数:x,y,translationX和translationY,其中,x和y是左上角的坐标,而translationX和translationY是View左上角相对于父容器的偏移量;translationX和translationY的默认值都为0;View为这8个参数都提供了set/get方法,可以方便的获取;
三个参数的关系:
x=left+translationX;
y=top+translationY;
需要注意的是,View在平移的过程中,top和left是原始左上角的位置信息,其值不会发生改变,变化的是translationX,translationY,x和y这四个参数;
2,MotionEvent和TouchSlope
1>MotionEvent
常见的三个事件:
ACTION_DOWN:手指刚接触屏幕;
ACTION_MOVE:手指在屏幕上移动;
ACTION_UP: 手指在屏幕上松开的一瞬间;
通过MotionEvent对象,我们可以得到点击事件发生的x和y坐标,
为此,系统提供了getX/getY(返回相对于当前View左上角的x,y坐标)和getRawX/getRawY(返回相对于手机屏幕左上角的x,y坐标);
2>TouchSlop
TouchSlop是系统所能识别出来的被认为是滑动的最小距离,如果手指在屏幕上滑动,两次滑动之间距离小于这个常量,那么系统就不认为你是在进行滑动操作;
获取这个常量值:ViewConfiguration.get(getContext).getScaledTouchSlop();
网友评论