android手机坐标系,原来我一直都没理解透
android手机屏幕的坐标系:
1. 竖屏
屏幕左上角为坐标系原点,坐标系如下:
在屏幕内,坐标都是正值,屏幕范围内最小是0;如果出现负值,那一定是超出屏幕范围了
2. 横屏
横屏的时候坐标系原点仍然是左上角,如下图:
这时候产生疑问,横屏时的坐标系应该有两个,顺时针旋转90度和逆时针旋转90度,对,就应该有两个:
不管横屏是由竖屏顺时针旋转90度,或者 逆时针旋转90度得到,都是以左上角为原点。是视觉上的左上角 ,不是空间上的左上角。比如
在大多数的二维绘图系统中 都是统一的把屏幕左上角定为原点 ,
所以你不需要关心屏幕的状态
3. 之所以写这篇博客,是因为上周在项目中遇到一个BUG:
需求是:
bug是绿框(扫描框)超出屏幕范围。通过track(跟踪)代码到getGuideFrame方法,此方法是计算绿框的坐标,计算出来的左坐标是72,群里热心的大神就指出没超过屏幕啊,我当时问:”算出来的72,如何判断是没超出的呢?“
我之所以会问出这样的问题,是因为我脑子里没有”在屏幕内,坐标都是正值,屏幕范围内最小是0“知识积累。
4.发觉自己自学能力不强。只知道手机坐标系在已左上角为原点,然后x轴向右,y轴向下,向下的y轴上坐标为正值。有过在想向下的y轴上的值是正的还是负的,因为之前接触的是y轴向上,一接触到y轴向下,就不知道向下的y轴应该是正值。