我是靠谱客的博主 顺利钢笔,最近开发中收集的这篇文章主要介绍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坐标的坐标点。结合上图和这些相关的事件,很轻易就可以理解这两种坐标了。


转载于:https://juejin.im/post/5aec1c316fb9a07a9918b73b

最后

以上就是顺利钢笔为你收集整理的View坐标系的全部内容,希望文章能够帮你解决View坐标系所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部