Android View坐标系详解(getTop()、getX、getTranslationX...)
来源:互联网 发布:qt gui编程 编辑:程序博客网 时间:2024/05/17 16:00
http://blog.csdn.net/u013872857/article/details/53750682
View 提供了如下 5 种方法获取 View 的坐标:
1. View.getTop()、View.getLeft()、View.getBottom()、View.getRight();
2. View.getX()、View.getY();
3. View.getTranslationX()、View.getTranslationY();
4. View.getLocationOnScreen(int[] position);
5. View.getLocationInWindow(int[] position);
初学View时见到这个多个方法可能有点懵逼,下面我来根据编号一一介绍:
**1.** 这四个方法用于获取View相对于父容器的坐标,如下图
从上图可知,可根据View的这四个坐标来获取View的大小:
- 1
- 2
需要注意的是,这四个方法获取的坐标表示的是View原始状态时相对于父容器的坐标,对View进行平移操作并不会改变着四个方法的返回值。
2. getX()与getY()方法获取的是View左上角相对于父容器的坐标,当View没有发生平移操作时,getX()==getLeft()、getY==getTop()。
3. translationX与 translationY是View左上角相对于父容器的偏移量:translationX = getX() - getLeft(),当View未发生平移操作时,translationX 与translationY都为0。
4. 获取View相对于整个屏幕的坐标。
5. 获取View相对于Window的坐标(忽略状态栏及ActionBar)。
上面介绍的是View获取坐标的几种方法,但是在实际开发中不仅需要获取View的坐标,有时候还需要获取用户点击时的坐标。
MotionEvent
当重写View的onTouchEvent(MotionEvent event)方法时android会把触摸事件封装成MotionEvent成提供给开发者,MotionEvent提供了两组用于获取用户点击点坐标的方法:
- 1
- 2
- Android View坐标系详解(getTop()、getX、getTranslationX...)
- Android View坐标系详解(getTop()、getX、getTranslationX...)
- Android View getX getLeft getTranslationX layoutparams.leftMargin的值
- [android API 学习]View 的getLeft(),getX()和getTranslationX()
- view.getX和view.getTranslationX的区别
- view.getX和view.getTranslationX区别
- view.getX和view.getTranslationX区别
- view.getX和view.getTranslationX区别
- view.getX和view.getTranslationX区别?
- view.getX和view.getTranslationX区别
- view.getX和view.getTranslationX区别
- 安卓中的坐标系,getTop();event.getX();event.getY();event.getRawX(); event.getRawY()
- 【安卓笔记】view.getX和view.getTranslationX区别
- Android MotionEvent中getX()和getRawX()区别以及View坐标getLeft(),getTop()一点理解
- View的getLeft()、getTranslationX()和getX()的区别
- MotionEvent的getX()、getRawX()和View的getHeight()、getTop()
- view.getX()、view.getY()、view.getLeft()、view.getRight()、view.getTranslationX()与动画
- Android开发之getX,getRawX,getWidth,getTranslationX等的区别
- 我的笔记-有用的网址
- mybatis xml 关联查询
- WEB相关文件的加载顺序
- LCM之Fmark功能 && LCD控制器同LCD驱动器的差别 && 帧率与刷新率的关系 && OLED背光
- android之壁纸机制
- Android View坐标系详解(getTop()、getX、getTranslationX...)
- 五分钟搞清楚MySQL事务隔离级别
- Oracle_第一弹
- kafka的java实例
- 编写Linux驱动程序三步骤
- python 之路,致那些年,我们依然没搞明白的编码
- Function类型(2)
- Oracle_第二弹
- BlueScope选择eXtremeDB数据库管理系统用于其轧板机控制系统