前言
在开发中经常遇到控件坐标计算的问题,为方便之后查找特此记录一下。
View中的坐标系
View的坐标系统是相对于父控件而言的。
view提供的方法
getTop:获取到的,是view自身的顶边到其父布局顶边的距离 getLeft:获取到的,是view自身的左边到其父布局左边的距离 getRight:获取到的,是view自身的右边到其父布局左边的距离 getBottom:获取到的,是view自身的底边到其父布局顶边的距离
MotionEvent中的坐标系
getX():获取点击事件相对控件左边的x轴坐标,即点击事件距离控件左边的距离 getY():获取点击事件相对控件顶边的y轴坐标,即点击事件距离控件顶边的距离
getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离 getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离
getScrollY() 获取视图坐标原点到视图滚出屏幕的距离 getScrollX() 类似 同上
View相对窗口Window的位置
int[] location = new int[2];
view.getLocationInWindow(location);
int x = location[0];
int y = location[1];
View相对屏幕的绝对坐标
int[] location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
|