View的使用

51 阅读1分钟

坐标系

  1. View.getTop()、View.getLeft()、View.getBottom()、View.getRight()
这四个方法用于获取View相对于父容器的坐标
View的Height值=view.getBottom()-view.getTop();
View的Widht值=view.getRight()-view.getLeft();

注意:这四个方法获取的坐标表示的是View原始状态时相对于父容器的坐标,对View进行平移操作并不会改变着四个方法的返回值。
  1. View.getX()、View.getY()
View左上角相对于父容器的坐标
当View没有发生平移操作时:getX()=getLeft()、getY()=getTop()
  1. View.getTranslationX()、View.getTranslationY()
View左上角相对于父容器的偏移量
translationX = getX() - getLeft()
translationY = getY() - getTop()
当View未发生平移操作时,translationX 与translationY都为0
  1. View.getLocationOnScreen(int[] position)
View相对于整个屏幕的坐标
  1. View.getLocationInWindow(int[] position)
View相对于Window的坐标(忽略状态栏及ActionBar)

getLocationOnScreen()和getLocationInWindow()的区别

测试发现:
大多数布局情况下,两者获得的内容是没有区别的,获得的都是getLocationOnScreen的值
唯一的区别是在window的弹框(dialog等)出现的情况下