原来也一直有用的是vv.getLocationOnScreen(location),
但是具体剩下的 几个获取的没有详细了解过,今天查了下资料
- api
Text View vv;
vv.getLocationInWindow(location)
vv.getLocationOnScreen(location)
vv.getLocalVisibleRect(r)
vv.getGlobalVisibleRect()
vv.getLeft ()
vv.getTop()
vv.getBottom()
vv.getRight()
- 用法
getLocationOnScreen
这个是我经常用的,获得到的 x,y 就是相对于屏幕而言的
int[] position = new int[2];
vv.getLocationOnScreen(position);
getLocationInWindow
这个是相对于窗口而言, 也就是说
X 是一样的,
Y = 标题栏高度(如果有标题栏)+ 状态栏高度+ view相对状态栏的Y
上面其实是数据和 OnScreen差不多的
但是 如果是 windowActivity的话
就是相对于 windowActivity 的x y 了。
int[] position = new int[2];
vv.getLocationOnScreen(position);
getLocalVisibleRect
这个一看就知道是 visibile(可见),取到的是本view的x y
Rect rect= new Rect();
button.getLocalVisibleRect(rect);
getGlobalVisibleRect
Global 一看就是全局的,获取全局坐标系的一个视图区域, 返回一个填充的Rect对象;该Rect是基于总整个屏幕的
Y = 标题栏高度(如果有标题栏)+ 状态栏高度+ view相对状态栏的Y
但是 如果是 windowActivity的话
就是相对于 windowActivity 的x y 了。
Rect rect= new Rect();
vv.getGlobalVisibleRect(rect);