android手机坐标系,原来我一直都没理解透

android手机屏幕的坐标系:

1. 竖屏

    屏幕左上角为坐标系原点,坐标系如下:

     在屏幕内,坐标都是正值,屏幕范围内最小是0;如果出现负值,那一定是超出屏幕范围了

android手机坐标系,原来我一直都没理解透

2. 横屏

横屏的时候坐标系原点仍然是左上角,如下图:

android手机坐标系,原来我一直都没理解透

这时候产生疑问,横屏时的坐标系应该有两个,顺时针旋转90度和逆时针旋转90度,对,就应该有两个:

android手机坐标系,原来我一直都没理解透

android手机坐标系,原来我一直都没理解透

不管横屏是由竖屏顺时针旋转90度,或者 逆时针旋转90度得到,都是以左上角为原点。是视觉上的左上角 ,不是空间上的左上角。比如

android手机坐标系,原来我一直都没理解透
在大多数的二维绘图系统中 都是统一的把屏幕左上角定为原点 ,
所以你不需要关心屏幕的状态 

3. 之所以写这篇博客,是因为上周在项目中遇到一个BUG:

  android手机坐标系,原来我一直都没理解透

需求是:

android手机坐标系,原来我一直都没理解透

bug是绿框(扫描框)超出屏幕范围。通过track(跟踪)代码到getGuideFrame方法,此方法是计算绿框的坐标,计算出来的左坐标是72,群里热心的大神就指出没超过屏幕啊,我当时问:”算出来的72,如何判断是没超出的呢?“

我之所以会问出这样的问题,是因为我脑子里没有”在屏幕内,坐标都是正值,屏幕范围内最小是0“知识积累。

4.发觉自己自学能力不强。只知道手机坐标系在已左上角为原点,然后x轴向右,y轴向下,向下的y轴上坐标为正值。有过在想向下的y轴上的值是正的还是负的,因为之前接触的是y轴向上,一接触到y轴向下,就不知道向下的y轴应该是正值。