View坐标系

"学而不思则罔,思而不学则殆"
                                        ————孔子
       Android View体系作为Android基础知识里面比较基础也比较核心的部分,其重要性不比四大组件差多少,从本篇开始将开始整理View的相关知识,形成系列。本篇主要就View的坐标做介绍,在后续的文章里还会涉及到事件的分发、View的绘制等内容。

View简介

       View是Android里面所有控件的基类,ViewGroup也是继承自View,我们常用的控件都是继承自View,掌握好View的相关知识,对后面的界面开发有很大帮助。View这一块内容,展示是基础,交互才是精髓,常见的有点击、长按、滑动等交互事件,点击、长按比较简单,滑动事件离不开坐标点,下面就坐标角度来分析一下。

安卓里的坐标系和数学坐标系的区别

       说到坐标系,大家最熟悉的还是数学里面最常用到的坐标系,如下图。在数学坐标系里面,坐标轴向上是y轴正方向,向右是x轴正方向。


       再来看看我们安卓里面的坐标系,如下图。和数学坐标系还是有区别的,向右是x轴正方向,向下是y轴的正方向,相当于数学坐标系上下颠倒了一下,在后续的开发里不要理解错了。


       在手机屏幕上坐标轴的体现为,如下图。假如粉红色区域为手机屏幕,屏幕的左上角是坐标系的原点(0,0),沿左边向下为y轴正方向,沿顶边向右为x轴正方向。

安卓里的坐标系

       Android坐标系主要分为两种:Android坐标、视图坐标。
              a、Android坐标:Android坐标是以屏幕的左上角为原点,水平向右为x正方向,垂直向下为y轴正方向。
              b、视图坐标:视图坐标和Android坐标相似,也是从原点水平向右代表x正方向,垂直向下代表y正方向,但是原点不再是屏幕的坐上角,而是父View的左上角作为原点,如下图所示。


相对坐标和绝对坐标的区别

       我们通过一幅图来了解相对坐标和绝对坐标的区别。如下图:


View获取自己坐标的事件:

       getLeft():当前View的左边离父控件左边的距离;
       getTop():当前View的顶边离父控件顶边的距离;
       getRight():当前View的右边距父控件左边的距离;
       getBottom():当前View的底边距父控件的顶边的距离;

View获取自身宽高:

       getWidth():当前View自身的宽度;
       getHeight():当前View自身的高度;

MotionEvent获取坐标:

       getX():当前触摸点距当前View的左边的距离;
       getY():当前触摸点距当前View的顶边的距离;
       getRawX():当前触摸点距屏幕左边的距离;
       getRawY():当前触摸点距屏幕的顶边的距离;

       这里getX()、getY()获取到的就是视图坐标的坐标点,getRawX()、getRawY()获取到的就是Android坐标的坐标点。结合上图和这些相关的事件,很轻易就可以理解这两种坐标了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值