首页 > 代码库 > 控件跟随手指移动(心得)
控件跟随手指移动(心得)
/** * 初始坐标 * * 都是相对于控件本身的坐标 * * x y 手指按下的坐标 */ private float x = 0, y = 0; @Override public boolean onTouchEvent(MotionEvent event) { // 手指按下的坐标 float downX = 0, downY = 0; // 移动后的坐标 改变的值 float moveX = 0, moveY = 0, changeX = 0, changeY = 0; switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: downX = event.getX(); downY = event.getY(); x = event.getX(); y = event.getY(); break; case MotionEvent.ACTION_MOVE: moveX = event.getX(); moveY = event.getY(); changeX = moveX - downX; changeY = moveY - downY; //this.getX() this.getY() 是在父控件的坐标 float currentX = this.getX() + changeX - x; float currentY = this.getY() + changeY - y; this.setX(currentX); this.setY(currentY); // 将移动后的坐标置为按下的位置 downX = moveX; downY = moveY; break; } return true; }
控件跟随手指移动(心得)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。