一起Talk Android吧(第一百一十二回:Android中View之坐标总结)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/talk_8/article/details/86566980

各位看官们,大家好,上一回中咱们说的是Android中View之按件事件的例子,这一回咱们说的例子是View之坐标总结。闲话休提,言归正转。让我们一起Talk Android吧!

我们在前面章回中介绍过View中的坐标和触摸事件的坐标,这些容易混淆,在本章回中就给大家做一个总结,以减少大家对各种坐标的困惑。

View中的坐标:
View是一个组件,它在屏幕中体现为一块区域,因此有上下左右之分,我们可以通过该区域上下左右的位置来确定它在布局中的位置。为此View提供了getLeft/Right/Top/Bottom这些方法来获取View到其父布局的距离,这些距离统称为View的坐标。

MotionEvent的坐标:
MotionEvent也就是触摸事件,它是一个点,虽然像区域一样有上下左右之分,但是我们可以通过点的坐标来确定它在布局中的位置。为此MotionEvent提供了getX/Y/RawX/RawY这些方法来获取触摸事件到其父布局的距离,这些距离统称为View的坐标。

看官们,触摸事件也是View的一部分,它用来表示的View的能力,因此我们也可以把上面所说的两种坐标统称为View中的坐标,其实官方文档并没有这样区分它们,只是为了方便大家理解我才做了区分。还有就是View组件也提供了getX/Y方法(从这点也可以看出来它们是一家人),其结果和getLeft/Top方法相同,只知道这两个位置坐标没有办法确定View组件的位置,因此我们在实际中几乎不使用getX/Y方法去获取View的位置坐标。常用的做法是使用getLeft等方法来获取View的位置坐标,使用getX等方法来获取触摸事件的位置坐标。

看官们,我把所有关于View坐标的内容结合在一起,制作了一个坐标图,大家可以从图中形象地看到各种坐标。

在这里插入图片描述

图中最外面是坐标的xy轴方向,接下来就是屏幕最上方的标题栏,标题栏下面蓝色方框范围的区域代表View的父布局。绿色方框范围内的区域代表View,获取View坐标的方法也使用绿色箭头进行了标记。橙色圆形区域代表触摸事件,获取触摸事件坐标的方法也使用橙色箭头进行了标记。图中还一部分虚线,只是为了画图方便添加上的,没有具体的意义。

各位看官,关于Androd中View之坐标总结的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

猜你喜欢

转载自blog.csdn.net/talk_8/article/details/86566980