Android View体系(一)视图坐标系
http://blog.csdn.net/itachi85/article/details/50708391
前言
Android 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():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
Android View体系(一)视图坐标系相关推荐
- Android View体系(十)自定义组合控件
相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...
- Android View体系(五)从源码解析View的事件分发机制
Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源码解析Sc ...
- Android View体系(1)
Android View体系 Activity并没有与ViewRoot和View树有直接的联系,它含有一个Window对象 private Window mWindow; Window是一个抽象类,持 ...
- Android View体系‘铁三角‘
前言 在搞Android开发的时候,和View的交互是必不可免的,因为我们肉眼可见,可以控制操作最直观的也是View,因此很有必要来吹水一下整个View体系的'铁三角',既View 绘制流程,View ...
- Android View体系(三)属性动画
上一篇文章讲了View滑动的六种方法,其中一种是使用动画,这篇文章我们来讲一讲动画的其中一种:属性动画. 1.android视图动画和属性动画 视图动画我们都了解,它提供了AlphaAnimation ...
- Android View体系(六)从源码解析Activity的构成
前言 本来这篇是要讲View的工作流程的,View的工作流程主要指的measure.layout.draw这三大流程,在讲到这三大流程之前我们有必要要先了解下Activity的构成,所以就有了这篇文章 ...
- Android View体系(3)
View Tree的遍历时机 遍历ViewTree时机: 1.应用程序刚启动时: ViewRootImpl.java public void setView(View view, WindowMana ...
- Android View体系(4)
View Tree的遍历流程 遍历主体performTraversals UI显示三要素:尺寸大小.位置和内容,它们在遍历过程中分别对应以下函数: 尺寸大小:performMeasure()用于计算V ...
- Android View体系(2)
View 在WMS中注册窗口 当ViewRootimpl构造的时候,它需要建立与WMS通信的双向通道,分别是: ViewRootImpl->WMS:IWindosSession; WMS-> ...
最新文章
- opencv中image watch插件安装与使用教程
- oracle union 最多_用户来稿:我就是那个在优买计划赚钱最多的男人
- 10.3 广州集训 Day2
- php面试题之一——PHP核心技术(高级部分)
- java 调用 rsync_运行rsync时,QProcess不显示任何输出
- 数字式轮胎气压计行业调研报告 - 市场现状分析与发展前景预测
- linux之我常用的系统重要文件备份命令
- Struts1表单验证方式
- C#Redis 事务操作
- 电脑一拖二的学习方法
- facebook第三方登陆
- 黎曼猜想 量子计算机,理解黎曼猜想(一)背景
- 华科计算机硕士毕业论文,华中科技大学硕士毕业论文要求_华中科技大学2020年硕士招生简章_华中科技大学研究生院...
- 从开发的软件《备件仓库管理系统》总结的一些经验
- Microsoft Visual Studio 2013 产品密匙
- python游戏编程快速上手pdf_Python游戏编程快速上手 (斯维加特著) 中文pdf完整版[18MB]...
- Spring Data Neo4j解除两个节点之间的关系
- 瞬时频率函数matlab,瞬时频率估计的相位建模法及Matlab的实现
- 计算机报录比多少算高,报录比多少合适?怎么算好考?我来告诉你答案
- IntelliJ IDEA 实现接口方法的快捷键
热门文章
- ELK实时分析之php的laravel项目日志
- git同一项目使用多个远程仓库
- ospf和pat及nat的配置
- jQuery火箭图标返回顶部代码
- samba服务中,关于读写(也就是下载和上传)权限的优先级
- RAID类型及软RAID的组建
- asp.net编程:asp.net中如何设置页面的编码
- 学用 ASP.Net 之 字符串 (2): string.Format
- IT创业光技术好,谋略定位不好,你很可能会死得很惨,丢钱、丢客户、丢成果、丢商机、丢思路...
- SQL Server自带备份整个数据库脚本工具