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体系(一)视图坐标系
http://blog.csdn.net/itachi85/article/details/50708391 前言 Android View体系是界面编程的核心,他的重要性不亚于Android四大组件 ...
- android以view建坐标系,android自定义View——坐标系
在开发过程中有的时候我们会实现一些特殊功能,如组件滑动到一定距离隐藏或显示.图片置顶等等,这个时候view的坐标就派上了用场了:同样在自定义控件的时候,坐标系也是经常用到的,下面记录一下在复习过程中v ...
- 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】初识 View
Android程序中的一个个界面都是由View组成的,下面让我们一起来了解一下View吧! View 的分类 如上图所示,系统的View大体分为两类,即View与ViewGroup,分别对应了控件与布 ...
- android 屏幕中心坐标原点,Android 的坐标系及矩阵变换
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Android的坐标系 2D坐标系 android的2d坐标系如图所示,水平向右为X轴正方向,竖直向下为Y轴正方向,原点 ...
- Android动画坐标系详解
前段时间写dialog底部弹出动画的时候明明觉得自己写的是对的,但效果却不对.相信很多人在写View动画的时候都遇到过这种情况.今天本文就对症下药,跟大家聊聊Animation动画坐标系,至于Anim ...
- Android运行时候报错:android.view.InflateException: Binary XML file line #19: Binary XML file lin
Android运行时候报错:android.view.InflateException: Binary XML file line #19: Binary XML file lin 这个问题自己大致在 ...
- android.view.InflateException: Binary XML file line #7: Binary XML file line #7
错误如下 11-21 08:19:44.040 3608-3608/com.leon.oldrecyclerview E/AndroidRuntime: FATAL EXCEPTION: main ...
最新文章
- cv python 样例_【CV实战】OpenCV—Hello world代码示例
- MacOS开发必备工具brew,安装nginx反向代理,替代linux工具 apt-get和 yum...
- 移动应用发展远超Web 谷歌苹果将主导世界?联网的发展才刚刚开始
- 研究综述 | 多关系知识图谱表示学习综述
- 稳定的货源社区新版云乐购免费开源源码
- 高通CEO谈中国5G:原以为会晚个5-10年,结果第一年就推出了
- php生成11位不重复数字,php生成8位不重复字符串
- 【Android 第三方SDK】breakpad在linux下编译
- 腾讯云主机凌晨内存上涨、CPU100%的问题排查与解决
- 万彩办公大师多页PDF文档去掉空白部分合并到同一页
- 2020.12.10丨cufflinks 简介及使用说明
- git name consists only of disallowed characters:
- 180个非常有用的电脑知识
- 从技术层面浅析美链BEC从诞生到覆灭
- 酷狗的krc歌词文件的解析
- 投资大师巴菲特长期投资理念
- VB亲身开发一个Windows软件(三)界面设计
- Linux下搭建File Browser文件管理系统
- 亚马逊物流:2022年1月18日美国物流配送费用
- 【蓝桥杯单片机】DS1302模块