Android开发 之 屏幕坐标获取想(x,y)
屏幕坐标获取想(x,y)
getLocationOnScreen
计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度)//获取在当前屏幕内的绝对坐标
getLocationInWindow
计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标
getLeft , getTop, getBottom, getRight,
这一组是获取相对在它父亲里的坐标
int[] location = new int[2] ;
view.getLocationInWindow(location);
//获取在当前窗口内的绝对坐标,当前activity显示的大小
view.getLocationOnScreen(location);
//获取在整个屏幕内的绝对坐标,包括通知栏
location [0]--->x坐标,location [1]--->y坐标
计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度)//获取在当前屏幕内的绝对坐标
getLocationInWindow
计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标
getLeft , getTop, getBottom, getRight,
这一组是获取相对在它父亲里的坐标
int[] location = new int[2] ;
view.getLocationInWindow(location);
//获取在当前窗口内的绝对坐标,当前activity显示的大小
view.getLocationOnScreen(location);
//获取在整个屏幕内的绝对坐标,包括通知栏
location [0]--->x坐标,location [1]--->y坐标
我相信看了下面的图,你就会更加清楚的理解了。
涉及到的方法一共有下面几个:
view获取自身坐标:getLeft(),getTop(),getRight(),getBottom() 相对于父控件的距离
view获取自身宽高:getHeight(),getWidth() 高度=getbottom-gettop 宽度=getright - getLeft()
motionEvent获取坐标:getX(),getY(), 相对于父控件的坐标 getRawX(),getRawY() 相对于屏幕的坐标
首先是view的几个方法:
获取自身的宽高的这两个方法很清楚,不用多说,获取坐标的这几个就有点混乱了。
根据上面的图应该会比较容易明白,图中屏幕上放了一个ViewGroup布局,里面有个View控件
getTop:获取到的,是view自身的顶边到其父布局顶边的距离
getLeft:获取到的,是view自身的左边到其父布局左边的距离
getRight:获取到的,是view自身的右边到其父布局左边的距离
getBottom:获取到的,是view自身的底边到其父布局顶边的距离
然后是motionEvent的方法:
getX():获取点击事件相对控件左边的x轴坐标,即点击事件距离控件左边的距离
getY():获取点击事件相对控件顶边的y轴坐标,即点击事件距离控件顶边的距离
getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离
getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离
view获取自身坐标:getLeft(),getTop(),getRight(),getBottom() 相对于父控件的距离
view获取自身宽高:getHeight(),getWidth() 高度=getbottom-gettop 宽度=getright - getLeft()
motionEvent获取坐标:getX(),getY(), 相对于父控件的坐标 getRawX(),getRawY() 相对于屏幕的坐标
首先是view的几个方法:
获取自身的宽高的这两个方法很清楚,不用多说,获取坐标的这几个就有点混乱了。
根据上面的图应该会比较容易明白,图中屏幕上放了一个ViewGroup布局,里面有个View控件
getTop:获取到的,是view自身的顶边到其父布局顶边的距离
getLeft:获取到的,是view自身的左边到其父布局左边的距离
getRight:获取到的,是view自身的右边到其父布局左边的距离
getBottom:获取到的,是view自身的底边到其父布局顶边的距离
然后是motionEvent的方法:
getX():获取点击事件相对控件左边的x轴坐标,即点击事件距离控件左边的距离
getY():获取点击事件相对控件顶边的y轴坐标,即点击事件距离控件顶边的距离
getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离
getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离