获取 View 坐标在 Android 开发中很是常见。今天carson将详细给你们讲解 获取 View 坐标经常使用6种方式:面试
1. 应用场景架构
得到 View 相对 父View 的坐标布局
2. 使用post
view.getLeft(); view.getTop(); view.getRight(); view.getBottom();
3. 具体描述学习
View的位置由4个顶点决定的(以下A、B、C、D)spa
View的顶点code
4个顶点的位置描述分别由4个值决定:(请记住:View的位置是相对于父控件而言的)视频
1. 应用场景事件
得到点击事件处 相对点击控件 & 屏幕的坐标开发
2. 使用
该方式是经过motionEvent获取的
motionEvent event; event.getX(); event.getY(); event.getRawX(); event.getRawY();
3. 具体介绍
1. 应用场景
获取控件 相对 窗口Window 的位置
2. 具体使用
int[] location = new int[2]; view.getLocationInWindow(location); int x = location[0]; // view距离window 左边的距离(即x轴方向) int y = location[1]; // view距离window 顶边的距离(即y轴方向) // 注:要在onWindowFocusChanged()里获取,即等window窗口发生变化后
3. 示意图
1. 应用场景
得到 View 相对 屏幕 的绝对坐标
2. 使用
int[] location = new int[2]; view.getLocationOnScreen(location); int x = location[0]; // view距离 屏幕左边的距离(即x轴方向) int y = location[1]; // view距离 屏幕顶边的距离(即y轴方向) // 注:要在view.post(Runable)里获取,即等布局变化后
3. 示意图
1. 应用场景
View可见部分 相对于 屏幕的坐标。
2. 具体使用
Rect globalRect = new Rect(); view.getGlobalVisibleRect(globalRect); globalRect.getLeft(); globalRect.getRight(); globalRect.getTop(); globalRect.getBottom();
3. 示意图
1. 应用场景
View可见部分 相对于 自身View位置左上角的坐标。
2. 具体使用
Rect localRect = new Rect(); view.getLocalVisibleRect(localRect); localRect.getLeft(); localRect.getRight(); localRect.getTop(); localRect.getBottom();
3. 示意图
本文对Android获取View坐标位置的方式进行了全面讲解,总结以下:
感谢你们能耐着性子,看完我啰哩啰嗦的文章。
愿与各位坚守在Android开发岗位的同胞们互相交流学习,共同进步!
在这里我也分享一份本身收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助你们学习提高进阶,也节省你们在网上搜索资料的时间来学习,也能够分享给身边好友一块儿学习