View 的位置主要由它的四个顶点来决定,分别对应于View的四个属性: top . left . right . bottom,其中top是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标。需要注意的是,这些坐标都是相对于View的父容器来说的,因此它是一种相对坐标,View的坐标和父容器的关系如下图所示:在Android中,X轴和Y轴的正方向分别为右和下,这点不难解,不仅仅是Android,大部分显示系统都是按照这个标准来定义坐标系的
根据如下图:
根据图我们很容易得出View的宽高和坐标的关系:
width =right - left;
height=bottom -top;
那么如何得到View的这四个参数呢?也很间,在View的源码中它们对应于mLeft ,mRight ,mTop ,mBottom这四个成员变量,获取方式如下:
> Left = getLeft();
> Right=getRight();
> Top =getTop();
>Bottom = getBottom();
从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 这四个参数。