iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 坐标系与视图坐标系图解分析
  • 754
分享到

Android 坐标系与视图坐标系图解分析

视图Android 2022-06-06 11:06:06 754人浏览 薄情痞子
摘要

1. Android坐标系 在Android中,将屏幕的最左上角顶点作为Android坐标系的原点 从原点向右是X轴的正方向,从原点向下是Y轴的正方向 View提供了getL

1. Android坐标系

Android中,将屏幕的最左上角顶点作为Android坐标系的原点

从原点向右是X轴的正方向,从原点向下是Y轴的正方向

View提供了getLocationOnScreen( int[] location)方法来获取在整个屏幕内的绝对坐标,该坐标值为View左上角的坐标。注意该View的坐标值是从屏幕左上角开始获取的,所以也包括了通知栏的高度

该方法的具体实现



  public void getLocationOnScreen(@Size(2) int[] location) {
    getLocationInWindow(location);
    final AttachInfo info = mAttachInfo;
    if (info != null) {
      location[0] += info.mWindowLeft;
      location[1] += info.mWindowTop;
    }
  }

可看到,传入的int[]数组中,location[0]代表的是X轴坐标,location[1]代表的Y轴坐标

这里还有个getLocationInWindow方法,作用是获取View在当前窗口内的绝对坐标

我们在通过MotionEvent类中的getRawX(),getRawY()方法获取的坐标同样也属于这种Android坐标系里的坐标

2. 视图坐标系

Android中的视图坐标系,描述的是子视图与其父视图中的位置关系

和Android坐标系一样,视图坐标系也是以原点向右为X轴正方向,以原点向下为Y轴正方向,与Android坐标系不同的是,视图坐标系的原点是以父视图左上角的位置为原点

如上图中,对于Button来说,父视图LinearLayout左上角就是视图坐标系的原点(0,0)

我们通过MotionEvent类中的getX()、getY()方法所获得的就是视图坐标系的坐标

在Android中,系统提供了很多获取坐标值、相对距离等方法

View提供的API

•getTop():获取View顶边到其父布局顶边的距离

•getLeft():获取View左边到其父布局左边的距离

•getRight():获取View右边到其父布局左边的距离

•getBottom():获取View底边到其父布局顶边的距离

MotionEvent提供的api

• getX():获取点击位置离View左边的距离

• getY():获取点击位置离View顶边的距离

• getRawX():获取点击位置离屏幕左边的距离

• getRawY():获取点击位置离屏幕顶边的距离

以上这篇Android 坐标系与视图坐标系图解分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

您可能感兴趣的文章:Android如何基于坐标对View进行模拟点击事件详解Android中GPS坐标转换为高德地图坐标详解ANDROID中使用VIEWFLIPPER类实现屏幕切换(关于坐标轴的问题已补充更改)Android应用 坐标系详细介绍Android开发中MotionEvent坐标获取方法分析深入浅析Android坐标系统android获得当前view在屏幕中坐标的方法Android中如何指定SnackBar在屏幕的位置及小问题解决Android仿淘宝view滑动至屏幕顶部会一直停留在顶部的位置Android获取点击屏幕的位置坐标


--结束END--

本文标题: Android 坐标系与视图坐标系图解分析

本文链接: https://www.lsjlt.com/news/28260.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作