Android坐标系

Android坐标系

学习android的期间,总是对各种坐标没有概念,走了很多弯路,今天来总结下,在android中有两种坐标系:

  1. android坐标系
  2. 视图坐标系

两个坐标系是有差别的,前面所说的弯路的根本原因也是在于没有搞清楚两个坐标系的关系和区别。


android坐标系

在android中,这个坐标系是相对于整个屏幕的,也是最基本的。在坐标系,屏幕的左上角是坐标轴原点,从这个点向右是X轴的正方向,这个点向下是Y轴正方向。如下图所示。
这里写图片描述

在andriod的触控事件中,MotionEventgetRawX()getRawY()得到的数值就是建立在android坐标系中,得到的数值就是在屏幕中的位置。文章最后一张图上面可以看的更明白些。


视图坐标系

视图坐标系是子视图在父视图中的位置描述,它们有相同点,有不同点。坐标原点在父视图的左上角,从这个点向右是X轴的正方向,这个点向下是Y轴正方向。如下图所示。
这里写图片描述

图中红框为屏幕,假想这时候里面屏幕正好是打开一个应用,应用的某一层布局A里面有且仅有一个》>button,那么这个button的视图坐标系的原点就是A布局的左上角(通俗的来讲就是button的父布局的左>上角是它的原点)。

MotionEventgetX()getY()就是建立在视图坐标系中的,得到的数值就是当前触碰的这个点在视图坐标系中的位置。

View中的几个常用方法也是建立在这个坐标系内:
getLeft()得到的是当前调用这个方法的控件的左边缘距离父布局的左边缘的距离。
getRight()得到的是当前调用这个方法的控件的右边缘距离父布局的左边缘的距离。
getTop()得到的是当前调用这个方法的控件的上边缘距离父布局的上边缘的距离。
getBottom()得到的是当前调用这个方法的控件的下边缘距离父布局的上边缘的距离。

还是很有规律的,大致上就是只看离父布局左边和上边的距离。


下面引用一张来自《Android群英传》的图片,可以更加清楚地看出各个坐标系和各个方法的联系和区别。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值