码迷,mamicode.com
首页 > 移动开发 > 详细

控件跟随手指移动(心得)

时间:2016-09-21 19:51:37      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

        /**
	 * 初始坐标
	 * 
	 * 都是相对于控件本身的坐标
	 * 
	 * 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;
	}    

  

控件跟随手指移动(心得)

标签:

原文地址:http://www.cnblogs.com/fengchuxiaodai/p/5893815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!