Android中的View事件体系(Android开发艺术探索)

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();

你可能感兴趣的:(Android中的View事件体系(Android开发艺术探索))