view的事件体系1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011101777/article/details/51764068

1. view的位置由其四个定点来确定,即top,left,right,bottom,分别表示相对父容器的坐标,即相对坐标,获取方式;top=getTop;

2. 自android3.0(api9)后增加了x,y,translateX,translateY这几个属性,translateX表示view的相对于自身左上角顶点的位移,而x=top+translateX;x指view相对于父容器的左上角坐标;

3. MotionEvent类中包含了手指触屏事件的基本类型,即ACTION_DOWN、ACTION_MOVE、ACTION_UP;同时通过MotionEvent对象还能获取到事件出发的位置坐标,

    3.1 获取相对于当前view左上角的坐标:getX(),getY()

    3.2 获取相对于屏幕左上角的坐标:getRawX();getRawY();

4. TouchSlop:判断为滑动的最小距离,我的理解是判断为ACTION_MOVE事件的标准距离;该值默认为8dp,但是在不同设备商可能不相同;

    4.1 获取方式:Configuration.get(getContext(()).getScaledTouchSlop();Configuration类是一个配置类,关于设备的很多初始值都在该类中;

5. velocitytracker速度追踪:在view的onTouchEvent()方法中注册:

    Velocitytracker velocity=VelocityTracker.obtion();

    velocity.addMovement(event);

    velocity.computeCurrentvelocity(1000);设置单位时间,单位是毫秒,该项必须在获取速度之前设置;

    velocity.getXvelocity()获取x方向上的速度;当前表示一秒内手指滑动的速度;

猜你喜欢

转载自blog.csdn.net/u011101777/article/details/51764068