getX getRawX getY getRawY
来源:互联网 发布:极乐净土动作数据镜头 编辑:程序博客网 时间:2024/05/21 23:34
关于view跟随手指移动,用getX()与getY()、getRawX()与getRawY()的差别
首先: getX getY是 触摸点距离所触摸控件左上角的距离(并非父容器,而是所触摸的控件)
getRawX getRawY是相对屏幕左上角的
private int lastX;private int lastY;
利用getX getY方式
textView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 记录触摸点坐标 lastX = x; lastY = y; break; case MotionEvent.ACTION_MOVE: // 计算偏移量 int offsetX = x - lastX; int offsetY = y - lastY; // 在当前left、top、right、bottom的基础上加上偏移量 textView.layout(textView.getLeft() + offsetX, textView.getTop() + offsetY, textView.getRight() + offsetX, textView.getBottom() + offsetY); break; } return true; } });
利用getRawX getRawY方式
textView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int rawX = (int) event.getRawX(); int rawY = (int) event.getRawY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 记录触摸点坐标 lastX = rawX; lastY = rawY; break; case MotionEvent.ACTION_MOVE: // 计算偏移量 int offsetX = rawX - lastX; int offsetY = rawY - lastY; // 在当前left、top、right、bottom的基础上加上偏移量 textView.layout(textView.getLeft() + offsetX, textView.getTop() + offsetY, textView.getRight() + offsetX, textView.getBottom() + offsetY); // 重新设置初始坐标 lastX = rawX; lastY = rawY; break; } return true; } });
主要就是move事件有没有重新设置初始坐标的区别
0 0
- getX getRawX getY getRawY
- getX()、getY() 与getRawX(),getRawY()的区别
- getX getY getRawX getRawY getTop getLeft 区别
- getRawX、getRawY和getX、getY的区别
- getX和getRawX、getY和getRawY?
- getRawX(),getRawY(),getX(),getY(),getScrollX(),getScrollY()区别
- getX、getY与getRawX、getRawY的区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()的区别
- MotionEvent中getX()与getRawX(),getY()与getRawY()
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- 安卓坐标(getX(),getY(),getRawX(),getRawY())
- apache的配置问题
- 文件内存映射mmap解决大文件快速读写问题和进程间共享内存
- Redux基础
- 四川省赛-E king's trouble II
- NAT与NAT穿透
- getX getRawX getY getRawY
- FIREFOX 下载中文文件名出现乱码的java解决方案
- 30速轻量山地车——2017全新X7
- java socket通信-传输文件图片
- 一次完整的HTTP请求与响应涉及了哪些知识?
- 分享几种Linux软件的安装方法
- 鸟哥的linux私房菜学习笔记《三十六》程序与进程管理
- IJKPlayer播放器支持https流程
- BUG记录--Iconfont图标在IE8浏览器的兼容问题