前言
接下来我们进入Android的View系列的学习,View的开发占Android开发的非常重要的一部分,Android开发的深度也是可以往View的方向深入,这是可以提升我们产品的用户体验。
这次学习的参考书籍是《Android群英传》徐宜生编著
View的简介
View是Android所有控件的基类,接下来借鉴网上的一张图片让大家一目了然(图片出自)
其实view在Android开发中的地位也是非常重要的,提升这方面的能力,可以使我们的产品提升用户体验。接下来好好学习View的体系。
Android坐标系:
在物理中,要描述一个物体的运动,就必须选定一个参考系。所谓滑动,正式相对于参考系的运动。在Android中,将屏幕最左上角的顶点作为Android坐标系的原点,从原点向右是X轴正方向,从原点向下是Y轴正方向:
系统提供了getLocationOnScreen(intLocation[])这样的方法来获取Android坐标中点的位置,即该视图左上角在Android坐标系中的坐标。另外,在触控事件中使用getRawX()和getRawY()方法所获取的坐标同样是Android坐标系中的坐标。
视图坐标系:
Android中除了上面所说的这种坐标系之外,还有一个视图坐标系,他描述了子视图在父视图中的位置关系。这两种坐标系并不矛盾也不复杂,他们的作用是相辅相成的。
与Android坐标系类似,视图坐标系同样是以原点向右为X轴正方向,以原点向下为Y轴正方向。
只不过在视图坐标系中,原点不再是Android坐标系中的屏幕左上角,而是以父视图左上角为坐标原点。
在触控事件中,通过getX()和getY()所获得的坐标就是视图坐标中的坐标。
在Android中,系统提供了非常多的方法来获取坐标值、相对距离等。方法多是好,但是不方便初学者学习,不知道什么情况下使用。下面就总结了一些API,结合Android坐标系来看看该如何使用它们。
这些方法可以分成如下两个类别:
View提供的获取坐标方法:
getTop():获取到的是View自身的顶边到其父布局顶边的距离
getLeft():获取到的是View自身的左边到其父布局左边的距离
getRight():获取到的是View自身的右边到其父布局左边的距离
getBottom():获取到的是View自身的底边到其父布局顶边的距离
另外View获取自身宽高
getHeight():获取View自身高度
getWidth():获取View自身宽度
MotionEvent提供的方法:
getX():获取点击事件距离控件左边的距离,即视图坐标
getY():获取点击事件距离控件东边的距离,即视图坐标
getRawX():获取点击事件距离整个屏幕左边的距离,即绝对坐标
getRawY():获取点击事件距离整个屏幕顶边的距离,即绝对坐标