周末在练习自定义view控件的时候发现会在android View基础知识上面犯错,出现对基础知识点记忆不清晰的情况
翻翻大神们的博客和任大神的那本android艺术开发探索,然后整理在这里做下记录。
android的坐标系
不同于数学上的坐标系,屏幕坐标系向右为X轴的增大方向,向下为Y轴的增大方向
对于View的基本位置参数,View的位置参数是相对于父控件而言的.
getTop(); //获取子View左上角距父View顶部的距离
getLeft(); //获取子View左上角距父View左侧的距离
getBottom(); //获取子View右下角距父View顶部的距离
getRight(); //获取子View右下角距父View左侧的距离
另外:
对于View自身的宽高
width = right – left
height = bottom – top
3.0之后,View增加了参数:x, y,translationX, translationY,其中x和y是View左上角的坐标,而translationX和translationY是View左上角相对于父容器的偏移量。
X = left + translationX;
Y =top+ translationY;
View在平移的过程中,top和left表示的是原始左上角的位置信息,他们的值不会发生改变,而x,y, translationX,translationY的值会随着变化。
角度和弧度的概念
在数学中
定义:
角度:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度.
弧度:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度.
换算:
圆一周对应的角度为360度(角度),对应的弧度为2π弧度。
故得等价关系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)
在android的坐标体系中这些都是适用的,但是需要注意的地方是
在常见的数学坐标系中角度增大方向为逆时针,
在默认的屏幕坐标系中角度增大方向为顺时针。