失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android控件随手指的移动而移动

Android控件随手指的移动而移动

时间:2022-04-18 07:09:55

相关推荐

Android控件随手指的移动而移动

Android控件随手指的移动而移动

原理:这个不是很难,首先我们要给控件设置触摸监听时间,监听按下,移动,抬起等操作,然后在移动,按下里面分别获取按下的坐标,通过移动获取的坐标减去之前按下的坐标得到移动的距离在XY轴上面,然后获取控件在主界面的上下左右的坐标值,通过之前的坐标值加上移动的距离就是控件移动后的未知了。

代码如下:

ll_move表示要移动的控件

ll_move.setOnTouchListener(new View.OnTouchListener() {private int startY;private int startX;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:Log.e("打印操作:", "按下了");//获取当前按下的坐标startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_MOVE://获取移动后的坐标int moveX = (int) event.getRawX();int moveY = (int) event.getRawY();//拿到手指移动距离的大小int move_bigX = moveX - startX;int move_bigY = moveY - startY;Log.e("打印操作:", "\nX移动了" + move_bigX + "\nY移动了" + move_bigY);//拿到当前控件未移动的坐标int left = ll_move.getLeft();int top = ll_move.getTop();left += move_bigX;top += move_bigY;int right = left + ll_move.getWidth();int bottom = top + ll_move.getHeight();ll_move.layout(left, top, right, bottom);startX = moveX;startY = moveY;break;case MotionEvent.ACTION_UP:Log.e("打印操作:", "抬起了");break;}return true;//此处一定要返回true,否则监听不生效}});

再来看下效果图:

看不懂得,可下载源码查看:点击下载源码

也可以先下载APP体验:点击下载apk体验密码sank

如果觉得《Android控件随手指的移动而移动》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。