Android坐标系
2016-07-27 17:21
169 查看
Android坐标系
学习android的期间,总是对各种坐标没有概念,走了很多弯路,今天来总结下,在android中有两种坐标系:android坐标系
视图坐标系
两个坐标系是有差别的,前面所说的弯路的根本原因也是在于没有搞清楚两个坐标系的关系和区别。
android坐标系
在android中,这个坐标系是相对于整个屏幕的,也是最基本的。在坐标系,屏幕的左上角是坐标轴原点,从这个点向右是X轴的正方向,这个点向下是Y轴正方向。如下图所示。在andriod的触控事件中,
MotionEvent的
getRawX()和
getRawY()得到的数值就是建立在android坐标系中,得到的数值就是在屏幕中的位置。文章最后一张图上面可以看的更明白些。
视图坐标系
视图坐标系是子视图在父视图中的位置描述,它们有相同点,有不同点。坐标原点在父视图的左上角,从这个点向右是X轴的正方向,这个点向下是Y轴正方向。如下图所示。图中红框为屏幕,假想这时候里面屏幕正好是打开一个应用,应用的某一层布局A里面有且仅有一个》>button,那么这个button的视图坐标系的原点就是A布局的左上角(通俗的来讲就是button的父布局的左>上角是它的原点)。
MotionEvent的
getX()和
getY()就是建立在视图坐标系中的,得到的数值就是当前触碰的这个点在视图坐标系中的位置。
View中的几个常用方法也是建立在这个坐标系内:
getLeft()得到的是当前调用这个方法的控件的左边缘距离父布局的左边缘的距离。
getRight()得到的是当前调用这个方法的控件的右边缘距离父布局的左边缘的距离。
getTop()得到的是当前调用这个方法的控件的上边缘距离父布局的上边缘的距离。
getBottom()得到的是当前调用这个方法的控件的下边缘距离父布局的上边缘的距离。
还是很有规律的,大致上就是只看离父布局左边和上边的距离。
下面引用一张来自《Android群英传》的图片,可以更加清楚地看出各个坐标系和各个方法的联系和区别。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories