坐标系
- View.getTop()、View.getLeft()、View.getBottom()、View.getRight()
这四个方法用于获取View相对于父容器的坐标
View的Height值=view.getBottom()-view.getTop();
View的Widht值=view.getRight()-view.getLeft();
注意:这四个方法获取的坐标表示的是View原始状态时相对于父容器的坐标,对View进行平移操作并不会改变着四个方法的返回值。
- View.getX()、View.getY()
View左上角相对于父容器的坐标
当View没有发生平移操作时:getX()=getLeft()、getY()=getTop()
- View.getTranslationX()、View.getTranslationY()
View左上角相对于父容器的偏移量
translationX = getX() - getLeft()
translationY = getY() - getTop()
当View未发生平移操作时,translationX 与translationY都为0
- View.getLocationOnScreen(int[] position)
View相对于整个屏幕的坐标
- View.getLocationInWindow(int[] position)
View相对于Window的坐标(忽略状态栏及ActionBar)
getLocationOnScreen()和getLocationInWindow()的区别
测试发现:
大多数布局情况下,两者获得的内容是没有区别的,获得的都是getLocationOnScreen的值
唯一的区别是在window的弹框(dialog等)出现的情况下