MotionEvent 初探

    最近因为项目需要用到MotionEvent的相关东西,但是对这个玩意只知道getX,getY根本不够用。

所以跑去把API提供的功能查阅了一番,搜了一下google发现竟然没人研究这个,只好自己写一下备查。

    

  • android.view.MotionEvent
  • addBatch (long eventTime,  PointerCoords[]  pointerCoords, int metaState)    往MotionEvent加东西的,略过。
  • addBatch(long eventTime, float x, float y, float pressure, float size, int metaState) 同上。
  •     这个是根据输入的例如 "AXIS_X""AXIS_Y" "AXIS_PRESSURE" 等查询对应的值。
  •     这个是反查,没啥好说。
  • getActionMasked()  相当于:event.getAction() & MotionEvent.ACTION_MASK。
  • getAxisValue(int axis) 获取各种虚拟轴上的值,例如AXIS_X,在X轴上的位置,AXIS_PRESSURE,在压力轴(这个轴是虚拟的)上的压力大小..等等。
  • getAxisValue(int axis, int pointerIndex) 根据第几个点查询该点在指定轴上的值。
  •  getEdgeFlags () 在ActionDown时有效。用来判断手指是否按在屏幕边缘。
  •  getFlags()文档和代码好像都没有什么注释,先略过。
  •   getHistoricalAxisValue (int axis, int pointerIndex, int pos) 得到一个ActionMove里包含的多个采样点的信息。
  •      Historical开头的均为类似的作用,再次略过。
  • getMetaState()这个在4.0以前是用来判断是手指或者尖笔按下。目前看源码注释应该是类似于设备的特殊按钮。略过
  • getOrientation(int pointerIndex) 相对于垂直平面的角度? 不确定,测试之后发现值均为0,略过。

  • getRawX() 基于屏幕的X,Y坐标。
  • getSize(int pointerIndex)  用于触摸屏或触摸板,报告有关该设备的最大可检测大小的接触面积的近似大小。该值被归一化到0(最小可检测的尺寸),1(最大可检测的尺寸)的范围内,尽管它不是以线性刻度。这个值用处有限。要获得校准的大小信息,使用AXIS_TOUCH_MAJOR AXIS_TOOL_MAJOR
  • getSource() 获得输入源(类似于: DPad,game pad,screen pointing device,keyboard,mouse, stylus pointing device.
  • getToolMajor(int pointerIndex)  按下物体的椭圆区域中长轴的长度。















  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值