前言
获取 View 坐标在 Android 开发中非常常见。今天carson将详细给大家讲解 获取 View 坐标常用6种方式:
- getLeft()、getTop()、getRight()、getBottom()
- getX()、getY()、getRawX()、getRawY()
- getLocationOnScreen()
- getLocationInWindow()
- getGlobalVisibleRect()
- getLocalVisibleRect()
方式1:getLeft()、getTop()、getRight()、getBottom()
1. 应用场景
获得 View 相对 父View 的坐标
2. 使用
view.getLeft();
view.getTop();
view.getRight();
view.getBottom();
3. 具体描述
View的位置由4个顶点决定的(如下A、B、C、D)
View的顶点
4个顶点的位置描述分别由4个值决定:(请记住:View的位置是相对于父控件而言的)
方式2:getX()、getY()、getRawX()、getRawY()
1. 应用场景
获得点击事件处 相对点击控件 & 屏幕的坐标
2. 使用
该方式是通过motionEvent获取的
motionEvent event;
event.getX();
event.getY();
event.getRawX();
event.getRawY();
3. 具体介绍
方式3:getLocationInWindow()
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. 示意图
方式4:getLocationOnScreen()
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. 示意图
方式5:getGlobalVisibleRect()
1. 应用场景
View可见部分 相对于 屏幕的坐标。
2. 具体使用
Rect globalRect = new Rect();
view.getGlobalVisibleRect(globalRect);
globalRect.getLeft();
globalRect.getRight();
globalRect.getTop();
globalRect.getBottom();
3. 示意图
方式6:getLocalVisibleRect()
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开发面试专题资料,高级进阶架构资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
相关推荐
本文将深入探讨“View坐标位置XY轴详解”,并基于配套博客提供的详细内容进行阐述。 首先,我们要知道Android中的坐标系统是基于左上角为原点(0,0)的二维平面。X轴水平向右延伸,Y轴垂直向下延伸。这是与数学中的...
通过阅读和理解这些代码,你可以更好地掌握Android环境下使用OpenGL ES进行3D图形编程的技巧。 总之,创建透明的三维坐标系涉及理解OpenGL ES的坐标系统、颜色混合、深度测试、几何变换以及着色器的使用。这个过程...
开发者可能使用`MotionEvent.getX()`和`getY()`获取原始坐标,并调用`view.getX()`和`view.getY()`来获取View自身的坐标,以便正确地处理触摸事件。 总的来说,"Pro Android学习:touch screen小例子"是一个实践...
在Android开发中,自定义View是一种常见的需求,用于实现特定的视觉效果或功能。本教程将探讨如何通过自定义View来实现水印效果,让应用能够在屏幕上动态地展示自定义的文字水印。水印通常用于保护版权或者增加信息...
Android坐标系统是Android开发中的一个基础但至关重要的概念,它涉及到UI元素的定位、触摸事件的处理以及自定义视图的实现。理解Android坐标系有助于开发者精确地控制UI元素的位置和交互行为。以下是对Android坐标...
在Android开发中,创建自定义视图是一种常见的需求,用于实现独特且富有创意的用户界面。"Android的可拖动PointView"是一个这样的实例,它允许用户通过触摸屏幕来拖动一个点视图。这个项目可能是一个独立的控件或者...
它需要实现Serializable接口,以便能够被Gson库正确地序列化和反序列化。 总的来说,实现Android手绘路径并保存点集涉及到了Android图形绘制、用户输入处理、数据结构、文件操作和Json序列化等多个技术点。这些知识...
完成这个项目后,你不仅会理解自定义View的绘制顺序,还能掌握如何高效地利用Android的图形系统实现复杂UI。这将对你的Android开发能力有显著提升,使你在解决实际问题时更加得心应手。记得实践是检验真理的唯一标准...
在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素。...通过实践"android自定义View滑块移动"这样的例子,开发者可以更好地驾驭Android开发,提升自己的专业技能。
在Android开发中,有时我们需要在应用中调用第三方地图应用,如高德地图,来显示特定的地理位置坐标。本文将详细讲解如何通过Android URI接口调用高德地图,并展示坐标点。 首先,我们需要理解Android URI的概念。...
在Android开发中,自定义View是一项常见的任务,它允许开发者根据特定需求创建具有独特功能的视图组件。在这个场景中,我们关注的是一个名为"RikkaScalableView"的自定义View,它实现了三个核心功能:单指移动、双击...
总之,要解决“拖动控件回到原点”的问题,关键在于正确地更新和保存视图的布局参数,同时考虑父布局可能的刷新或重建操作。在处理可滚动容器如ListView时,还需要在适配器中恢复视图的位置信息。通过这些策略,我们...
2. **测量与布局**:自定义View需要正确地测量自身大小,以适应不同屏幕尺寸。在onMeasure()中,应根据MeasureSpec的规则计算尺寸。onLayout()方法则用于放置子View,理解LayoutParams的角色和使用至关重要。 3. **...
// 同样地,将ACTION_UP事件传递给目标View targetView.dispatchTouchEvent(upEvent); } ``` 4. **触发模拟点击**: 在描述中提到的按钮响应事件中,你可以调用`simulateClick()`方法,传入你想要点击的屏幕...
在Android开发中,自定义View是一项常见的任务,它允许开发者扩展Android系统提供的基本视图功能,以满足特定的用户界面需求。事件分发是Android UI交互的核心机制,它决定了触摸事件如何在View层次结构中传递。本文...
在Android开发中,自定义View是一项常见的任务,它允许开发者根据特定需求创建独特的用户界面元素。本文将深入探讨“Android View的六种移动方式”,帮助开发者掌握如何动态地改变View的位置,实现各种动画效果和...
在Android应用开发中,制作圆形头像图片是一个常见的需求,特别是在社交应用或者用户个人资料页面。这个功能的实现主要涉及到自定义View以及图片处理技术。本文将深入探讨如何通过自定义View来创建一个圆形的头像...
### Android实例开发完全手册知识点概览 #### 第1章 正式开发前的准备 - **1.1 Windows下安装Java环境JDK** - **实例说明:** 本节介绍如何在Windows操作系统上安装Java Development Kit (JDK),这是进行Android...
总的来说,Android开发者在处理触摸事件时,正确理解和使用`MotionEvent`的坐标获取方法是实现用户交互功能的关键。通过`getX()`和`getRawX()`,以及它们对应的Y坐标方法,可以精确地跟踪用户在屏幕上的动作,从而为...