Android的View体系(三):View坐标以及方法说明

在实际开发中,我们总是会和View打交道,例如View滑动、获取View坐标等等,那么就会牵扯到许多系统提供的Api方法,那么今天,我们就来详细了解一下,与之有关的系统方法。

一. 坐标系

首页,我们先需要了解一下Android里面的坐标系(二维坐标系)。Android中存在两种坐标系,Android坐标系(屏幕坐标系)和视图坐标系(View坐标系)。先上一张图,如下:
Android的View体系(三):View坐标以及方法说明_第1张图片
通过上面这张图,我们可以得知:

1.Android坐标系,是以手机屏幕左上角为原点,以水平向右为X轴正方向,以竖直向下为y轴正方向;

2.视图坐标系,原点是该View的父View的左上角,以水平向右为X轴正方向,以竖直向下为y轴正方向;

需要补充的一点是,**View视图可以是没有边界的,换句话说,就是View视图的大小可以比Android的手机屏幕大,甚至还大很多。还是依旧上图说明,**如下:
Android的View体系(三):View坐标以及方法说明_第2张图片
这张图中,黑色的线框是View的大小,黄色线框是手机屏幕的大小,我们可以看出,View的大小比手机屏幕还大,并且只有在手机屏幕里面,我们才能看到。目前手机屏幕只显示Buttton2按钮,不在黄色线框中的视图,是隐藏(不可见)状态,当我们手指在手机屏幕上左右滑动时,可能才显示其他隐藏的视图。所以,我们在布局中可能会遇到,有的View只显示了一部分,就是这个原因!

二.Android提供的Api方法解释说明

1.View常用到的方法。

(1)getLeft(),当前View的左边缘与它父View的左边缘的距离(视图坐标);

(2)getRight(),当前View的右边缘与它父View的左边缘的距离(视图坐标);

(3)getTop(),当前View的上边缘与它父View的上边缘(顶部)的距离(视图坐标);

(4)getBottom(),当前View的下边缘与它父View的上边缘(顶部)的距离(视图坐标);

(5)getWidth(),获取当前View的宽度;

(6)getHeight(),获取当前View的高度;

看一张图,我们可能就了然了。
Android的View体系(三):View坐标以及方法说明_第3张图片
2.MotionEvent中有这几个常用的方法getX(),getY(),getRawX(),getRawY()。(MotionEvent是该View的onTouchEvent()方法中的)

(1)getX(),触摸中心点与该View左边缘的距离(视图坐标);

(2)getY(),触摸中心点与该View上边缘(顶部)的距离(视图坐标);

(3)getRawX(),触摸中心点与屏幕左边缘的距离(绝对坐标);

(4)getRawY(),触摸中心点与屏幕上边缘(顶部)的距离(绝对坐标);

请留意,这几个是MotionEvent中的方法,调用的时候MotionEvent.getX()…。看一张图,如下:
Android的View体系(三):View坐标以及方法说明_第4张图片

三.总结

Android的View体系是界面编程的核心,它的重要性不亚于Android四大组件,View的试图坐标系总结如下:
Android的View体系(三):View坐标以及方法说明_第5张图片

你可能感兴趣的:(Android窗口管理)