文章目录
1 前言
Android 的 View 体系是 Android 中非常重要的一块内容,包括自定义控件、事件的分发等都属于 View 体系。
2 View 简介
View 是 Android 中所有控件的基类,ViewGroup 也是继承自 View。ViewGroup 是 View 的组合,可以包含 ViewGroup 也可以包含 View,以此类推,组成一个 View 树。

3 坐标系
Android 坐标系分为两种。
- Android 坐标系
- 视图坐标系
3.1 Android 坐标系
Android 坐标系,以屏幕的左上角为原点,向右为 X 轴,向下为 Y 轴,如下图所示:

3.2 视图坐标系
视图坐标系也叫 View 坐标系,如下图所示:

3.2.1 View 获取自身宽高
由上图可知 View 自身的高度计算公式:
- width = getRigth() - getLeft()
- height = getBottom() - getTop()
View 源码中提供的 getWidth() 和 getHeight() 获取 View 的宽高,内部处理是相同的。
3.2.2 View 自身坐标
下面方法获取 View 到父控件的距离:
- getTop():View 自身顶部到父控件顶部距离
- getBottom():View 自身底部到父控件顶部距离
- getLeft():View 自身左边到父控件左边距离
- getRight():View 自身右边到父控件左边距离
3.2.3 MotionEvent 提供方法
当我们点击手机屏幕时候,点击事件会封装成 MotionEvent,然后由 onTouchEvent(MotionEvent ev) 方法进行处理,MotionEvent 提供获取焦点左边的方法:
- getX():视图坐标,点击位置距离控件左边距离
- getY():视图坐标,点击位置距离控件顶部距离
- getRawX():绝对坐标,点击位置距离整个屏幕左边距离
- getRawY():绝对坐标,点击位置距离整个屏幕顶部距离
本文深入解析Android中的坐标系概念,包括Android坐标系和视图坐标系。详细介绍了View如何获取自身宽高,以及如何通过getTop(), getBottom(), getLeft(), getRight()等方法获取自身坐标。同时,探讨了MotionEvent在触摸事件处理中的应用。
6747

被折叠的 条评论
为什么被折叠?



