Android View 视图坐标系

一 概述

Android View 体系是界面编程的核心,他的重要性不亚于 Android 四大组件,在这个系列中我会陆续讲到 View 坐标系、View 的滑动、View 的事件分发等文章来逐步介绍 Android View 体系。

二 View简介

View 是 Android 所有控件的基类,同时 ViewGroup 也是继承自 View,看下面这张图我们就会有一个直观的了解:
在这里插入图片描述
知道了 View 的层级关系有助于对 View 的理解,从上图可以发现我们常用的这些控件都是继承于 View,如果我们更好的掌握了 View 的知识体系,那么我们在界面编程时则会更加的得心应手。

三 Android坐标系

Android 中有两种坐标系,分别为 Android 坐标系和视图坐标系,首先我们先来看看 Android 坐标系。

在 Android 中,将屏幕的左上角的顶点作为 Android 坐标系的原点,这个原点向右是 X 轴正方向,原点向下是 Y 轴正方向。
在这里插入图片描述
在下文讲到的 MotionEvent 提供的 getRawX() 和 getRawY() 获取的坐标都是 Android 坐标系的坐标。

四 视图坐标系

要了解视图坐标系我们只需要看懂一张图就可以了:
在这里插入图片描述
View 获取自身宽高

  • getHeight():获取 View 自身高度
  • getWidth():获取 View 自身宽度

View 自身坐标

通过如下方法可以获得 View 到其父控件(ViewGroup)的距离:

  • getTop():获取 View 自身顶边到其父布局顶边的距离
  • getLeft():获取 View 自身左边到其父布局左边的距离
  • getRight():获取 View 自身右边到其父布局左边的距离
  • getBottom():获取 View 自身底边到其父布局顶边的距离

MotionEvent 提供的方法

我们看上图那个深蓝色的点,假设就是我们触摸的点,我们知道无论是View还是ViewGroup,最终的点击事件都会由 onTouchEvent(MotionEvent event) 方法来处理,MotionEvent 也提供了各种获取焦点坐标的方法:

  • getX():获取点击事件距离控件左边的距离,即视图坐标
  • getY():获取点击事件距离控件顶边的距离,即视图坐标
  • getRawX():获取点击事件距离整个屏幕左边距离,即绝对坐标
  • getRawY():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值