前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义 View 系列(一)-坐标系和视图坐标系

自定义 View 系列(一)-坐标系和视图坐标系

作者头像
Android技术干货分享
发布2019-03-26 17:30:34
8710
发布2019-03-26 17:30:34
举报
文章被收录于专栏:Android技术分享Android技术分享

View 的简介

View是Android所有控件的基类,接下来借鉴网上的一张图片让大家一目了然(图片出自:http://blog.51cto.com/wangzhaoli/1292313

image

图片内容有点多,自定义 View 做得好事可以提升用户对 APP 的体验感的。接下来就学习一下 Android 的相关坐标系。

Android 坐标系

在物理中,要描述一个物体的运动,就必须选定一个参考系。所谓滑动,正式相对于参考系的运动。在Android中,将屏幕最左上角的顶点作为Android坐标系的原点,从原点向右是X轴正方向,从原点向下是Y轴正方向:

image

系统提供了 getLocationOnScreen(intLocation[]) 这样的方法来获取 Android 坐标中点的位置,即该视图左上角在 Android 坐标系中的坐标。另外,在触控事件中使用 getRawX() 和 getRawY() 方法所获取的坐标同样是 Android 坐标系中的坐标。

视图坐标

Android 中除了上面所说的这种坐标系之外,还有一个视图坐标系,他描述了子视图在父视图中的位置关系。这两种坐标系并不矛盾也不复杂,他们的作用是相辅相成的。

与 Android 坐标系类似,视图坐标系同样是以原点向右为X轴正方向,以原点向下为Y轴正方向。

只不过在视图坐标系中,原点不再是 Android 坐标系中的屏幕左上角,而是以父视图左上角为坐标原点。

image

在触控事件中,通过 getX() 和 getY() 所获得的坐标就是视图坐标中的坐标。

在 Android 中,系统提供了非常多的方法来获取坐标值、相对距离等。方法多是好,但是不方便初学者学习,不知道什么情况下使用。下面就总结了一些 API,结合 Android 坐标系来看看该如何使用它们。

image

这些方法可以分成如下两个类别:

View提供的获取坐标方法: **getTop(): **获取到的是View自身的顶边到其父布局顶边的距离 **getLeft(): **获取到的是View自身的左边到其父布局左边的距离 **getRight(): **获取到的是View自身的右边到其父布局左边的距离 **getBottom(): **获取到的是View自身的底边到其父布局顶边的距离

另外View获取自身宽高

**getHeight(): **获取View自身高度 **getWidth(): **获取View自身宽度 MotionEvent提供的方法: **getX(): **获取点击事件距离控件左边的距离,即视图坐标 **getY(): **获取点击事件距离控件东边的距离,即视图坐标 **getRawX(): **获取点击事件距离整个屏幕左边的距离,即绝对坐标 **getRawY(): **获取点击事件距离整个屏幕顶边的距离,即绝对坐标

以上就是简单的 Android 坐标和 View 的视图坐标。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.12.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • View 的简介
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档