View的事件体系

本文深入解析了Android布局管理中的view属性,包括获取左右上下边界的方法,以及平移时坐标与偏移量的区别。同时,介绍了VelocityTracker在追踪触摸事件速度的应用,包括初始化、追踪、计算速度和清理内存的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1:view有以下四个方法:

 view.getLeft()        得到的是当前view离父容器左边的距离

 view.getRight()     得到的是当前view离父容器右边的距离

 view.getTop()        得到的是当前view离父容器顶部的距离

 view.getBottom    得到的是当前view离父容器底部的距离

由以上四个参数可以计算出view的宽高;   宽度  width=view.getRight() - view.getLeft();  高度  height = view.getBottom() - view.getTop();

 而 view的还有另外两个方法:

       view.getTranslationX();  v.getTranslationY(); 这两个方法分别是VIew左上角相对于父容器的偏移量。

  从android 3.0开始增加了额外的几个参数,x、y、translationX、translationY,其中x和y是View左上角的坐标,而translationX和tranlationY是View左上角相对于容器的偏移量。这几个参数也是相对于父容器的坐标,并且translationX和tranlationY的默认值是0。需要注意的是view在平移的过程中,top和left表示的是原始左上角的位置信息,并不会发生改变,此时发生改变的是x,y,translationX和tranlationY。

这几个参数的关系为 x=left+translationX  


在MotionEvent中有两个方法:

    event.getRawX()  ; event.getRawY() ; 这个返回的是事件相对于手机屏幕左上角的x和y坐标 :

2:速度追踪器的使用;

 VelocityTracker:速度追踪,用于追踪手指在滑动过程中的速度,包括水平和竖直方向的速度,他的使用过程很容易:

     首先,在View的onTouchEvent方法中追踪当前单击事件的速度:

        VelocityTracker velocityTracker=VelocityTracker.obtain();
        velocityTracker.addMovement(event);

    接着,我们想知道当前的滑动速度时,这个时候可以采用如下方式来获得当前速度:       

   velocityTracker.computeCurrentVelocity(1000);
   int xVel= (int) velocityTracker.getXVelocity();
   int yVel= (int) velocityTracker.getYVelocity();

  获取速度之前必须先计算速度,在使用getXVelocity()或者getXVelocity()方法之前必须要调用computeCurrentVelocity方法,

  里面的参数是时间间隔为1000ms,在1s内,手指在水平方向从左向右滑动100像素,那么水平速度就是100,当从右往左移动时,水   平速度就是负数,如果参数为100,那么得到的速度就是10像素/每100ms,即水平速度就是10

  最后,在不使用它的时候需要调用clear方法来重置并回收内存;

     velocityTracker.clear();

     velocityTracker.recycle();

   

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优雅的心情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值