android 控件 获取 position

来源:互联网 发布:python不可重复的序列 编辑:程序博客网 时间:2024/05/21 03:57

原来也一直有用的是vv.getLocationOnScreen(location)
但是具体剩下的 几个获取的没有详细了解过,今天查了下资料

  1. api
Text View  vv;vv.getLocationInWindow(location)vv.getLocationOnScreen(location)vv.getLocalVisibleRect(r)vv.getGlobalVisibleRect()vv.getLeft ()vv.getTop()vv.getBottom()vv.getRight()
  1. 用法

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);
0 0
原创粉丝点击