View的位置参数

View位置决定因素

View的位置主要由它的四个顶点来决定,分别对应于View的四个属性:top、left、right、bottom。

  • top——-左上角纵坐标
  • left——-左上角横坐标
  • right—–右下角横坐标
  • bottom–右下角纵坐标

需要注意的是,这些坐标都是相对于View的父控件来说的,因此它是一种相对坐标。

View的位置坐标和父容器关系,触摸事件的坐标:

View的位置参数_第1张图片

上图很清楚的展示了View的位置坐标和父容器的关系,MotionEvent获取位置与View提供的方法的关系

 left=getLeft();
 top=getTop();
 right=getRight();
 bottom=getBottom();

我们很容易得出View的宽和高和坐标的关系:

width=getWidth()=getRight()-getLeft();
height=getHeight()=getBottom()-getTop();

需要注意:
从Android3.0开始,View增加了额外的几个参数:x、y、translationX和translationY,其中x和y是View左上角的坐标,而translationX和translationY是View 相对于父容器的偏移量。这几个参数也是相对于父容器的坐标,并且translationX和translationY的默认值是0,和View的四个基本位置参数一样,View也为他们提供了get/set方法,这几个参数的换算关系如下所示:

x=left+translationX
y=top+translationY

View在平移的过程中,top和left表示的是原始左上角的位置信息,其值并不会发生改变,此时发生改变的是x、y、translationX和translationY这四个参数。

MotionEvent提供的方法getX()/getY() 和getRawX()/getRawY()区别:

getX()/getY()          返回的是相对于当前View左上角的xy坐标
getRawX()/getRawY()    返回的是相对于手机屏幕左上角的xy坐标

你可能感兴趣的:(Android自定义View,控件,自定义View,View的位置参数,getRawX,getX)