博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android View体系(一)视图坐标系
阅读量:7238 次
发布时间:2019-06-29

本文共 972 字,大约阅读时间需要 3 分钟。

前言

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

1.View简介

View是Android所有控件的基类,同时ViewGroup也是继承自View,看下面这张图我们就会有一个直观的了解:

这里写图片描述

知道了View的层级关系有助于对View的理解,从上图可以发现我们常用的这些控件都是继承于View,如果我们更好的掌握了View的知识体系,那么我们在界面编程时则会更加的得心应手。

2.Android坐标系

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

在Android中,将屏幕的左上角的顶点作为Android坐标系的原点,这个原点向右是X轴正方向,原点向下是Y轴正方向。

这里写图片描述

在下文讲到的MotionEvent提供的getRawX()和getRawY()获取的坐标都是Android坐标系的坐标。

3.视图坐标系

要了解视图坐标系我们只需要看懂一张图就可以了:

这里写图片描述

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():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
你可能感兴趣的文章
Spark on Yarn with Hive实战案例与常见问题解决
查看>>
ASP.NET中的三层结构解读
查看>>
如何使用js来获取cookie的值
查看>>
Intellij IDEA 下的版本控制VCS的启用与关闭
查看>>
实验6:使用安装模式配置路由器
查看>>
【菜鸟必读】Cubieboard驱动1602 LCD显示屏显示信息 (支持一键安装,含电路图)
查看>>
rpm软件包制作
查看>>
最短路径 Floyd算法
查看>>
MySQL 用户管理----匿名用户登陆问题解析
查看>>
模拟android访问服务器
查看>>
ACL、Network和prefix-list的掩码与反掩码区别(包含奇数和偶数)古老的配置
查看>>
结巴分词使用
查看>>
PopupWindow gridview 无法响应Item
查看>>
我的友情链接
查看>>
数据持久化之SQLite
查看>>
android4.1+ ListView 不滚动
查看>>
3. 类
查看>>
Axure快速创建原型的示例
查看>>
ssh连接错误的解决办法
查看>>
mac 下面wireshark 找不到网卡
查看>>