网站大量收购独家精品文档,联系QQ:2885784924

Android的滑动分析以及各种实现.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android的滑动分析以及各种实现

Android的滑动分析以及各种实现??分享【引自MrXI的博客】一、滑动效果的产生滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件,并且根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。(1)、Android的坐标系Android中将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如下图:系统提供了getLocationOnScreen(int location[])这样的方法来获取Android坐标系中点的位置,即该视图左上角在Android坐标系中的坐标。在触控事件中使用getRawX()、getRawY()方法所获得的坐标同样是Android坐标系中的坐标。(2)、视图坐标系Android中除了上面所说的这种坐标系之外,还有一个视图坐标系,它描述了子视图在父视图中的位置关系。这两种坐标系并不矛盾也不复杂,他们的作用是相互相成的。与Android坐标系类似,视图坐标系同样是以原点向右为X轴正方向,以原点向下为Y轴正方向,只不过在视图坐标系中,原点不再是Android坐标系中的屏幕最左上角,而是以父视图左上角为坐标原点,如下图:在触控事件中,通过getX()、getY()所获得的坐标系就是视图坐标系中的坐标。(3)、触控事件——MotionEvent触控事件MotionEvent在用户交互中,占着举足轻重的地位。首先看看MotionEvent封装的一些常用事件常量,定义了触控事件的不同类型。//单点触摸按下动作?public?static?final?int?ACTION_DOWN?????????????=?0;??//单点触摸离开动作?public?static?final?int?ACTION_UP???????????????=?1;??//触摸点移动动作?public?static?final?int?ACTION_MOVE?????????????=?2;??//触摸动作取消?public?static?final?int?ACTION_CANCEL???????????=?3;??//触摸动作超出边界?public?static?final?int?ACTION_OUTSIDE??????????=?4;??//多点触摸按下动作?public?static?final?int?ACTION_POINTER_DOWN?????=?5;??//多点离开动作?public?static?final?int?ACTION_POINTER_UP???????=?6;??通常情况会在onTouchEvent(MotionEvent event)方法中通过event.getAction()方法来获取触控事件的类型,并使用switch-case方法来进行筛选,这个代码的模式基本固定:@Override?public?boolean?onTouchEvent(MotionEvent?event)?{?????//获取当前输入点的X、Y坐标(视图坐标)?????int?x?=?(int)?event.getX();?????int?y?=?(int)?event.getY();?????switch?(event.getAction())?{?????????case?MotionEvent.ACTION_DOWN:?????????????//处理按下事件?????????????break;?????????case?MotionEvent.ACTION_MOVE:?????????????//处理移动事件?????????????break;?????????case?MotionEvent.ACTION_UP:?????????????//处理离开事件?????????????break;?????}?????return?true;?}??在不涉及多点操作的情况下,通常可以使用以上代码来完成触控事件的监听。在Android中系统提供了非常多的方法来获取坐标值、相对距离等。方法丰富固然好,下面对坐标系的API进行总结,如下图:这些方法可以分为如下两个类别:View提供的获取坐标方法getTop():获取到的是View自身的顶边到其父布局顶边的距离。getLeft():获取到的是View自身的左边到其父布局最左边的距离。getRight():获取到的是View自身的右边到其父布局左边的距离。getBottom():获取到的是View自身的底边到其父布局顶边的距离。MotionEvent提供的方法getX():获取点击事件距离空间

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档