android 图片拖动

@Override
 public boolean onTouch(View arg0, MotionEvent event) {
 int aciton = event.getAction();
 switch(aciton){
 case MotionEvent.ACTION_DOWN:
 //初始化手指触点的位置
 contactX = (int) event.getRawX();
 contactY = (int) event.getRawY();
 //计算出手指触点 相对于 图片位置的坐标差
 tempX = contactX - (int) img.getX();
 tempY = contactY - (int)img.getY();
 break;
 case MotionEvent.ACTION_MOVE:
 //不断获取手指触点的位置
 contactX = (int) event.getRawX();
 contactY = (int) event.getRawY();
 //根据 触点相对于 图片位置的坐标差来 计算图片相对于 parent 的位置
 
 int top = contactX - tempX; 
 int left = contactY -tempY;
 int right =top +img.getMeasuredWidth(); 
 int bottom =left+img.getMeasuredHeight();
 //top, left,right,bottom  都是相对于父控件的左上角
 img.layout(top, left,right,bottom);
 img.postInvalidate();
 break;
 }
 return false;
 }

解决了网上有些图片拖动坐标有偏差的问题

转载于:https://my.oschina.net/JMSoldier/blog/357235

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值