Android获取View坐标位置方式汇总

本文主要用于收集View坐标相关知识点


方法详解

  • View获取自身坐标:getLeft(),getTop(),getRight(),getBottom()
    • getTop:获取到的,是view自身的顶边到其父布局顶边的距离
    • getLeft:获取到的,是view自身的左边到其父布局左边的距离
    • getRight:获取到的,是view自身的右边到其父布局左边的距离
    • getBottom:获取到的,是view自身的底边到其父布局顶边的距离
  • View获取自身宽高:getHeight(),getWidth()
  • View.getTranslationX()、View.getTranslationY()
    • translationX 与 translationY 是 View 左上角相对于父容器的偏移量:translationX = getX() - getLeft(),当 View 未发生平移操作时,translationX 与 translationY 都为 0
  • MotionEvent获取坐标:getX(),getY(),getRawX(),getRawY()
    • getX():获取点击事件相对控件左边的x轴坐标,即点击事件距离控件左边的距离
    • getY():获取点击事件相对控件顶边的y轴坐标,即点击事件距离控件顶边的距离
    • getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离
    • getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离

获取View的坐标可以的方法

通过View获取自身坐标系

getLeft()、getTop()、getRight()、getBottom()

通过MotionEvent获取坐标

getX()、getY()、getRawX()、getRawY()

获取控件 相对 窗口Window 的位置

getLocationOnScreen()

获取View 相对 屏幕 的绝对坐标

getLocationInWindow()

获取View可见部分 相对于 屏幕的坐标。

getGlobalVisibleRect()

获取View可见部分 相对于 自身View位置左上角的坐标。

getLocalVisibleRect()

1
2
3
4
5
6
Rect localRect = new Rect();
view.getLocalVisibleRect(localRect);
localRect.getLeft();
localRect.getRight();
localRect.getTop();
localRect.getBottom();