Android自定义View基础-坐标系

作者微博: @GcsSloop

【本系列相关文章】

一.屏幕坐标系和数学坐标系的区别

由于移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向,
所以在手机屏幕上的坐标系与数学中常见的坐标系是稍微有点差别的,详情如下:

PS:其中的∠a 是对应的,注意y轴方向!


实际屏幕上的默认坐标系如下:

PS: 假设其中棕色部分为手机屏幕

二.View的坐标系

注意:View的坐标系统是相对于父控件而言的.

  getTop();       //获取子View左上角距父View顶部的距离
  getLeft();      //获取子View左上角距父View左侧的距离
  getBottom();    //获取子View右下角距父View顶部的距离
  getRight();     //获取子View右下角距父View左侧的距离

如下图所示:

三.MotionEvent中 get 和 getRaw 的区别

    event.getX();       //触摸点相对于其所在组件坐标系的坐标
    event.getY();

    event.getRawX();    //触摸点相对于屏幕默认坐标系的坐标
    event.getRawY();

如下图所示:

PS:其中相同颜色的内容是对应的,其中为了显示方便,蓝色箭头向左稍微偏移了一点.

四.核心要点

序号 要点
1 在数学中常见的坐标系与屏幕默认坐标系的差别
2 View的坐标系是相对于父控件而言的
3 MotionEvent中get和getRaw的区别

五.参考文章:

Android 屏幕(View)坐标系统

发现更多

你可以在下面平台找到我。

微博 | GitHub | 知乎

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.屏幕坐标系和数学坐标系的区别 手机上的坐标系是左上角的为原是坐标点,向右为x轴增正方向,向下为y轴增正方向 图...
    冉冉升起的小太阳阅读 1,129评论 1 1
  • 本篇文章基于小米3测试 坐标系 屏幕坐标系和数学坐标系的区别Android设备定义屏幕左上角为坐标原点,向右为x轴...
    李庆雪阅读 1,827评论 0 6
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,284评论 25 708
  • 选择比努力重要。 就像来到一座陌生城市,要想达到目的地。一份正确的地图(方向)比努力要重要的多。 创业方向。 找到...
    代帅阅读 259评论 0 0
  • 写给五年后的自己,五年后的我看到五年前的我说不定会嘲笑当初的自己吧,怎么这么傻。 一切都是个假设罢了,五年后我...
    我曾视你如命阅读 453评论 0 0