Android View坐标系详解:getX,getY,getLocationScreen,getLocationWindow,...

View 提供了如下 5 种方法获取 View 的坐标:

  1. View.getTop()、View.getLeft()、View.getBottom()、View.getRight();
  2. View.getX()、View.getY();
  3. View.getTranslationX()、View.getTranslationY();
  4. View.getLocationOnScreen(int[] position);
  5. View.getLocationInWindow(int[] position);

初学View时见到这个多个方法可能有点懵逼,下面我来根据编号一一介绍:

  1. 这四个方法用于获取View相对于父容器的坐标,如下图:



    需要注意的是,这四个方法获取的坐标表示的是View原始状态时相对于父容器的坐标,对View进行平移操作并不会改变着四个方法的返回值。

  2. getX()与getY()方法获取的是View左上角相对于父容器的坐标,当View没有发生平移操作时,getX()==getLeft()、getY==getTop()。
  3. translationX与 translationY是View左上角相对于父容器的偏移量:translationX = getX() - getLeft(),当View未发生平移操作时,translationX 与translationY都为0。
  4. 获取View相对于整个屏幕的坐标。
  5. 获取View相对于Window的坐标(忽略状态栏及ActionBar)。

上面介绍的是View获取坐标的几种方法,但是在实际开发中不仅需要获取View的坐标,有时候还需要获取用户点击时的坐标。
MotionEvent获取手指位置的坐标方法如下:
getX()和getY()获取到的是相对于当前View左上角的坐标;
getRawX和getRawY()获取的是相对于屏幕左上角的坐标;


你可能感兴趣的:(Android View坐标系详解:getX,getY,getLocationScreen,getLocationWindow,...)