Android View体系(一)坐标系

1 前言

AndroidView 体系是 Android 中非常重要的一块内容,包括自定义控件、事件的分发等都属于 View 体系。

2 View 简介

ViewAndroid 中所有控件的基类,ViewGroup 也是继承自 ViewViewGroupView 的组合,可以包含 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():绝对坐标,点击位置距离整个屏幕顶部距离
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值