Android的坐标系及获取View的坐标方法
来源:互联网 发布:matlab 遗传算法函数 编辑:程序博客网 时间:2024/06/07 18:40
android中有两种坐标系,分别称之为Android坐标系和视图坐标系。
我们经常在自定义View,在测量和绘制时会用到这些,只有我们弄清楚它们才能保证不出错。下面我们来谈谈它们的定义及区别吧。
一、Android坐标系和视图坐标系
(1)Android坐标系
先来看一看Android坐标系是个什么样子的。贴一张图来说明,如下:
如上图所示,Android坐标系以手机屏幕左上角的顶点为坐标原点,从该点向右为x轴正方向,从该点向下为y轴正方向。而触控事件中,使用getRawX()和getRawY()方法
获取的坐标就是以这个坐标系为标准下的坐标值。
(2)视图坐标系
如上图所示,视图坐标系是以父视图的左上角为坐标原点的。相应的原点向右为x轴正方向,原点向下为y轴正方向。在触控中,通过
getX()和getY()来获取的坐标值就是视图坐标系中的坐标值。
二、获取坐标值以及相对距离的那些方法
在android中,提供了非常丰富的方法来获得坐标值和相对距离。但是在使用这些方法的时候,一定要清楚是以哪个坐标系为标准来获取的。
为了将这些方法一一说明清楚,我也准备了一张图,如下:
上面的那张图很好的说明了每个方法获得的坐标值或者距离都是从哪里到哪里的。说明一下,图中有三个黑色的框框,最外层的是手机屏幕,
中间层的是ViewGroup,最内层的是ViewGroup中放置的view。
其实上图中标注的方法可以分为两类,一类是View提供的方法,一类是MotionEvent提供的方法。分别说明如下:
View提供的获取的坐标以及距离的方法:
getTop() 获取到的是view自身的顶边到其父布局顶边的距离
getLeft() 获取到的是view自身的左边到其父布局左边的距离
getRight() 获取到的是view自身的右边到其父布局左边的距离
getBottom() 获取到的是view自身底边到其父布局顶边的距离
getY() 和getTop()一样
getX() 和getLeft()一样
int[] location = new int[2] ; // 存储view的绝对坐标值
view.getLocationInWindow(location); // 获取在当前窗口内的绝对坐标
view.getLocationOnScreen(location);// 获取在整个屏幕内的绝对坐标
MotionEvent提供的方法:
getX() 获取点击事件距离控件左边的距离,即视图坐标
getY() 获取点击事件距离控件顶边的距离,即视图坐标
getRawX() 获取到的是点击事件距离整个屏幕左边的距离,即绝对坐标
getRawY() 获取到的是点击事件距离整个屏幕顶边的距离,即绝对坐标
- Android的坐标系及获取View的坐标方法
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- Android 3种坐标系、View在各坐标系下获取自身坐标的方法、View的滑动方式和scroll方法
- (4.1.40)android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- Android中的坐标系以及获取坐标的方法
- Android中的坐标系以及获取坐标的方法
- Gitlab高级应用——代码回滚
- sqlite创建数据表
- Ubuntu终端常用的快捷键
- CYUSB3014 I2C eeprom 启动
- 第四章SpringMVC--Controller接口控制器详解
- Android的坐标系及获取View的坐标方法
- 對象的實例化
- MarkDown简单有用的语法、快捷键
- 浅谈href=#与href=javascript:void(0)的区别
- 如何 ubuntu下启动/停止/重启MySQL
- STM32 SPI NSS 作用
- 欢迎使用CSDN-markdown编辑器
- maven环境搭建及创建spring+springmvc+mybatis项目(eclipse)
- 2017年最新黑马安卓第76期就业班不加密视频教程