我们偶尔需要在应用中拖动界面上的控件,使得控件会跟随手指的移动直到手指离开屏幕
一、在进行drag之前先了解各个坐标的情况
1、安卓是以屏幕的左上角为原点往右和下分别为X和Y轴的正向
如上图所示,整个屏幕的原点在左上角;如果Layout要获取相对屏幕的位置则需要通过接口:
layout左上角相对屏幕的原点的位置可以如下获取:
int[] size = new int[2]; getLocationOnScreen(size); // size[0] = x, size[1] = y
当要知道当前触屏点击的layout的位置相对屏幕原点的位置则可以在onTouchEvent 的MotionEvent event 进行获取:
event.getRawX(); // 当前触控点相对屏幕X原点的位置 event.getRawY(); // 当前触控点相对屏幕Y远点的位置
2、视坐标,触摸位置子控件相对父控件的左上角位置
如上图所示,button控件的视坐标即以父控件的左上角为原点;当要知道当前在button控件中的触摸点击位置相对坐标原点的位置,则可以在onTouchEvent 的MotionEvent event 进行获取:
int x = (int) event.getX(); int y = (int) event.getY();
二、具体的各个方法如下所示(安卓群英传的截图)
标签:控件,原点,int,安卓,位置,坐标,屏幕,event From: https://www.cnblogs.com/czwlinux/p/16986438.html