最近正在学习自定义View,因为每次我们的开发时,毕竟我们所有的UI控件都不是拿来就用的,虽然很多开源的库,但是也不是都可以满足我们的需求,即使有本人认为不爱动手写的程序员不是合格的程序猿。近期查阅了很多度娘,整理了一些经验和内容,希望今天拿来View的坐标系与大家分享一哈。
1、Android屏幕坐标系
首先我们我们先说一下数学坐标系
通常情况下数学坐标系中向上是Y轴正方向,向右是X轴正方向
(注意:a角是数学坐标系的表现)
在Android屏幕的坐标系中,原点在屏幕的左上角,向下为Y轴正方向,向右是X轴正方向
(注意:a角是Andorid坐标系的表现)
屏幕上真正的坐标系如下图所示:
2、View的坐标系
首先在解释一下View的getTop、getBottom、getLeft、getRight;
都是距离父布局的顶部或者左侧的距离
getTop(); //获取子View左上角距父View顶部的距离
getLeft(); //获取子View左上角距父View左侧的距离
getBottom(); //获取子View右下角距父View顶部的距离
getRight(); //获取子View右下角距父View左侧的距离
3、触摸点MotionEvent中 get 和 getRaw 的区别
event.getX(); //触摸点相对于其所在组件坐标系的坐标,也就是View的坐标系
event.getY();
event.getRawX(); //触摸点相对于屏幕默认坐标系的坐标,(注:不是相对于父布局来说的)
event.getRawY();