首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获得与整个屏幕对应的屏幕坐标,而不是触摸的视图?

要获得与整个屏幕对应的屏幕坐标,而不是触摸的视图,可以使用以下方法:

  1. 在 Android 中,可以使用 View.getLocationOnScreen() 方法获取视图在屏幕上的位置,然后将触摸事件的坐标与视图的位置相加即可得到与整个屏幕对应的坐标。
  2. 在 iOS 中,可以使用 UITapGestureRecognizerUIPanGestureRecognizer 等手势识别器,获取触摸事件的位置,然后将触摸事件的坐标与视图的位置相加即可得到与整个屏幕对应的坐标。
  3. 在 Web 开发中,可以使用 event.clientXevent.clientY 获取触摸事件的坐标,然后将其与视图的位置相加即可得到与整个屏幕对应的坐标。

以下是一个简单的示例代码:

代码语言:java
复制
// Android 示例代码
@Override
public boolean onTouchEvent(MotionEvent event) {
    int[] location = new int[2];
    getLocationOnScreen(location);
    int x = (int) event.getX() + location[0];
    int y = (int) event.getY() + location[1];
    // 处理触摸事件
    return true;
}
代码语言:swift
复制
// iOS 示例代码
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch = touches.first!
    let location = touch.location(in: self.view)
    let screenLocation = touch.location(in: nil)
    // 处理触摸事件
}
代码语言:javascript
复制
// Web 开发示例代码
document.addEventListener('click', function(event) {
    var x = event.clientX + document.documentElement.scrollLeft;
    var y = event.clientY + document.documentElement.scrollTop;
    // 处理点击事件
});

请注意,以上示例代码仅供参考,实际应用中可能需要根据具体情况进行调整。

相关搜索:图像的像素坐标基于手指触摸的图像,而不是屏幕如何获得与屏幕分辨率无关的地图坐标如何添加覆盖单个组件的背景,例如纸张而不是整个屏幕如何使用Selenium Webdriver捕获特定元素的屏幕截图,而不是整个页面?如何修复环绕屏幕的列而不是贴合如何在flutter项目中针对特定的屏幕而不是所有的屏幕应用localizationsDelegates?如何在Javascript中获得相对于页面而不是相对于屏幕的鼠标坐标?iOS safari添加到我的角度网络应用程序图标的主屏幕来作为屏幕截图,而不是苹果触摸图标我有两个大的组件/屏幕,在链接按下元素后,我希望整个屏幕加载新的组件,而不是重新加载XCode (Bug?)(SwiftUI):我的视图来自屏幕的边缘,而不是缩放和改变它们所在的位置如何将图像显示在屏幕的中心而不是相对位置?当在Android中切换到NightMode时,如何动画整个屏幕的颜色(所有可见的视图/布局)?如何确保flutter中图像的url不会显示在屏幕上而不是图像上?如何在tab导航器的屏幕之间传递数据,当按下第一个屏幕中的按钮时,而不是路由到第二个屏幕?如何让AVFoundation预览视图占据SwiftUI中的所有屏幕,而忽略安全区域?如何将图像放在屏幕的中心,而不是在抖动中没有边距/填充?如何在HTML/CSS中将iframe视点设置为一个屏幕的自动大小,而不是另一个屏幕的自动大小使用PhilJay / MPAndroidChart,我如何截取整个图表的屏幕截图,而不仅仅是可见的部分?需要在特定的UIView中显示视频录制屏幕,而不是在iOS中出现完整的视图控制器问题如何获得与浏览器视图匹配的带换行符的文本,而不是html源代码(使用python和漂亮汤)
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

(转载非原创)Android系统编程入门系列之界面Activity交互响应

界面内交互 界面响应 说到界面交互,很容易想到用户在设备屏幕上的触摸操作。可是屏幕那么大要怎么确定用户触摸的位置呢?...该规则将屏幕的左上角作为屏幕坐标的原点,从左上角往右上角延伸的方向作为屏幕坐标的x轴,从左上角往左下角延伸的方向作为屏幕坐标的y轴。...比如针对一款 1024x512 尺寸的TV设备,其左下角的屏幕坐标值为 (0, 512),右下角的屏幕坐标值为 (1024, 512),右上角的屏幕坐标值为 (1024, 0),左上角的屏幕坐标值为 (...对屏幕的触摸位置有了衡量标准,是不是就可以根据不同的位置做触摸操作了呢?说到触摸操作,也需要细化之后单独处理。Android系统将用户操作行为,大致分为三种:按下行为,滑动行为,抬起释放行为。...另外,不同的系统视图也可能有单独设置的响应方法,或者自定义视图也会提供单独的响应方法,例如列表视图中的某一行数据被单独点击后如何响应,这些都要根据具体的视图类查找并使用对应的响应方法,这里不再赘述。

42700
  • Android自定义系列——14.MotionEvent

    和以下的几个方法: 方法 简介 getAction() 获取事件类型。 getX() 获得触摸点在当前 View 的 X 轴坐标。 getY() 获得触摸点在当前 View 的 Y 轴坐标。...getRawX() 获得触摸点在整个屏幕的 X 轴坐标。 getRawY() 获得触摸点在整个屏幕的 Y 轴坐标。...ACTION_OUTSIDE 如果初始点击位置在该视图区域之外,该视图根本不可能会收到事件,然而,万事万物都不是绝对的,肯定还有一些特殊情况,你可曾还记得点击 Dialog 区域外关闭吗?...Dialog 就是一个特殊的视图(没有占满屏幕大小的窗口),能够接收到视图区域外的事件(虽然在通常情况下你根本用不到这个事件),除了 Dialog 之外,你最可能看到这个事件的场景是悬浮窗,当然啦,想要接收到视图之外的事件需要一些特殊的设置...Android 在 2.0 版本的时候开始支持多点触控,一旦出现了多点触控,很多东西就突然之间变得麻烦起来了,首先要解决的问题就是 多个手指同时按在屏幕上,会产生很多的事件,这些事件该如何区分呢?

    2K10

    iOS Programming – 触摸事件处理(2)

    iOS Programming – 触摸事件处理(2) 在上一篇《iOS Programming – 触摸事件处理(1)》中了解触摸、事件和响应者之后,接下去学习如何处理用户的触摸事件。...首先触摸的对象是视图,而视图的类UIView继承了UIRespnder类,但是要对事件作出处理,还需要重写UIResponder类中定义的事件处理函数。...对于这4个方法,都有两个相同的参数:NSSet类型的touches和UIEvent类型的event。其中touches表示触摸产生的所有UITouch对象,而event表示特定的事件。...因为UIEvent包含了整个触摸过程中所有的触摸对象,因此可以调用allTouches方法获取该事件内所有的触摸对象,也可以调用touchesForVIew:或者touchesForWindows:取出特定视图或者窗口上的触摸对象...下面举个例子创建可以拖动的视图,这个主要通过触摸对象的位置坐标来实现。因此调用触摸对象的locationInView:方法即可。

    93870

    touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event使用

    iOSProgramming – 触摸事件处理(2) 在上一篇《iOS Programming – 触摸事件处理(1)》中了解触摸、事件和响应者之后,接下去学习如何处理用户的触摸事件。...首先触摸的对象是视图,而视图的类UIView继承了UIRespnder类,但是要对事件作出处理,还需要重写UIResponder类中定义的事件处理函数。...对于这4个方法,都有两个相同的参数:NSSet类型的touches和UIEvent类型的event。其中touches表示触摸产生的所有UITouch对象,而event表示特定的事件。...因为UIEvent包含了整个触摸过程中所有的触摸对象,因此可以调用allTouches方法获取该事件内所有的触摸对象,也可以调用touchesForVIew:或者touchesForWindows:取出特定视图或者窗口上的触摸对象...下面举个例子创建可以拖动的视图,这个主要通过触摸对象的位置坐标来实现。因此调用触摸对象的locationInView:方法即可。

    57420

    Android Scroll分析

    所以要实现View的滑动,必须要监听用户的触摸事件,并根据事件传入的坐标,动态且不断的改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。...和Android坐标系类似,视图坐标系同样是以原点方向向右为X轴正方向,以原点向下为Y轴正方向,只是这个原点不再是Android坐标系中屏幕的左上角,而是父视图左上角为坐标原点。 ?...getY():获取点击事件距离控件顶边的距离,即视图坐标 getRawX():获取点击事件距离整个屏幕左边的距离,即绝对坐标 getRawY():获取点击事件距离整个屏幕顶边的距离,即绝对坐标...总体来讲,scrollTo scrollBy方法,子View的移动都是瞬间的,在事件执行的时候平移已经完成了,而Scroller类可以实现平滑移动的效果,而不是在瞬间完成的移动。...演示: 子View随着手指的滑动而滑动,在手指离开屏幕时,让子View平滑的移动到初始位置,即屏幕的左上角。

    81520

    iOS-UITouch事件处理详解1. iOS中的事件基本介绍2.UITouch3.UIEvent4. 事件的产生和传递5. 通过UITouch方法监听View的触摸事件的缺点

    UITouch的创建 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象,一根手指对应一个UITouch对象。 2....UITouch的常用方法 - (CGPoint)locationInView:(UIView *)view; //返回值表示触摸在view上的位置 //这里返回的位置是针对view的坐标系的(以view...,通常,先发送事件给应用程序的主窗口(keyWindow) 主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步 找到合适的视图控件后,就会调用视图控件的touches...方法来作具体的事件处理 4.2 那么主窗口如何找到最合适的控件来处理事件?...4.4 触摸事件处理的详细过程(响应者链的传递过程) 用户点击屏幕后产生的一个触摸事件,经过一系列的传递过程后,会找到最合适的视图控件来处理这个事件 找到最合适的视图控件后,就会调用控件的touches

    1.7K60

    史上最详细的iOS之事件的传递和响应机制-原理篇

    我们只能通过子类继承父类,重写子类方法的方式处理UIView的触摸事件(注意:我说的是UIView触摸事件而不是说的 UIViewController的触摸事件)。...的触摸事件,而不是处理 UIViewController的触摸事件。...主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步。 找到合适的视图控件后,就会调用视图控件的touches方法来作具体的事件处理。...3.3.2.练习 屏幕上现在有一个viewA,viewA有一个subView叫做viewB,要求触摸viewB时,viewB会响应事件,而触摸viewA本身,不会响应该事件。如何实现?...也不能处理该事件或消息,则将其丢弃 事件处理的整个流程总结:   1.触摸屏幕产生触摸事件后,触摸事件会被添加到由UIApplication管理的事件队列中(即,首先接收到事件的是UIApplication

    11.4K70

    CALayer的寄宿图

    一个视图就是在屏幕上显示的一个矩阵块(比如图片、文字或者视频),它能够拦截点击以及触摸手势等用户输入。视图在层级关系中可以相互嵌套,一个视图可以管理他的所有所有子视图的位置。...在iOS当中,所有的视图都是从一个叫做UIView的基类派生而来,UIView可以处理触摸事件,支持基于CoreGraphics的绘图,可以做仿射变换(例如旋转或缩放),或者简单的滑动以及渐变动画。...和bounds、frame不同,contentsRect不是按点来计算的,而是使用的单位坐标,单位坐标指定在0到1之间,是一个相对值(像素和点都是绝对值),所以contentsRect是相对于寄宿图的尺寸而言的...iOS用点作为屏幕的坐标测算体系,就是为了在Retina屏幕和普通设备上能有一直的视觉效果。 像素——物理像素坐标并不会用于屏幕布局,但是仍然与图片有相对关系。...单位——单位坐标实际就是一个比例坐标。 contentsRect的默认值是{0,0,1,1},它表示的是,从寄宿图像素尺寸的原点(0,0)开始,分别截取宽、高的1倍长度,其实就是展示整个寄宿图。

    1K20

    iOS面试题:事件传递和响应机制

    事件的产生 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中,为什么是队列而不是栈?...主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步。 找到合适的视图控件后,就会调用视图控件的touches方法来作具体的事件处理。 2....事件的响应 4.1 触摸事件处理的整体过程 1 用户点击屏幕后产生的一个触摸事件,经过一系列的传递过程后,会找到最合适的视图控件来处理这个事件 2 找到最合适的视图控件后,就会调用控件的touches方法来作具体的事件处理...如何判断上一个响应者 1 如果当前这个view是控制器的view,那么控制器就是上一个响应者 2 如果当前这个view不是控制器的view,那么父控件就是上一个响应者 响应者链的事件传递过程 1 如果当前...总结 事件处理的整个流程总结: 1.触摸屏幕产生触摸事件后,触摸事件会被添加到由UIApplication管理的事件队列中(即,首先接收到事件的是UIApplication)。

    1.2K10

    自定义View进阶路:绘制饼图

    前言 首先,附上效果图,方便大家一眼可以查看是不是自己想要的~ ? 大家看到效果了吧,要实现这个效果也不难,最重要的一点就是心中有数,那么如何做到心中有数呢?...如上图,一个简易效果,饼图位于屏幕中间,那么我们该如何绘制呢? 确定绘制的起点,也就是确定饼图的中心点; ? 大家知道,默认的坐标系位于屏幕的左上角,分别X,Y轴,移动之后,坐标系便位于屏幕中间。...关于如何移动,我们下面将进行撸码说明。 计算外接矩形距屏幕的左上右下; ? 计算外接矩形,也就是计算移动到屏幕中心。而我们就是要计算扇形组成圆形的外接矩形的左上右下距离。...将点击的坐标位置转化为以饼状图中心为原点的坐标,对坐标进行处理,之后将坐标转化为点击的角度,判断是否处于某一个饼状图所在的角度区域 接下来我们开始获取当前视图左边缘、上边缘以及圆心坐标。...xy坐标对应角度。

    73120

    Android的FixScrollView自定义控件

    为什么我们说是“该系列事件”,而不是说“该事件”呢?注意,View的事件体系中,从down->move->……->move->up。...一开始的思路是切换tab页面的话其他tab页面Listview控件可见状态会不可见或者消失,完全不是这么回事,后来发现其实View的视图状态一直是可见的,不过那时候技术老大提醒说点击不同的tab时listview...所在的屏幕位置发生变化通过x值可以区分也就是要坐标系中的横坐标,判断当前view“屏幕可见”一定是0屏幕宽度),后面直接想用输出打印View的位置坐标,发现各种相似的方法,...但是都不是整个屏幕中的坐标。...group.getChildAt(i); if (child instanceof ScrollView) { //获取view在整个屏幕中的坐标如果

    1.9K80

    touchesBegan 触摸事件

    中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。...,通过forin循环来遍历NSSet中的每一个元素,当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象, 保存着跟本次手指触摸相关的信息,比如触摸的位置、时间、阶段, 当手指离开屏幕时...; 5)获取当前触摸事件所处的状态 触摸事件在屏幕上有一个周期,即触摸开始、触摸点移动、触摸结束,还有中途取消。...类 UIEvent:成为事件对象,记录产生的时刻和类型,事件对象中包含于当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象。...]; //返回触摸点所在视图中的坐标 CGPoint point = [touch locationInView:[touch view]]; NSLog(@"point--x:

    83320

    touchesBegan 触摸事件一、概念介绍二、方法介绍三、参数介绍:touches四、参数介绍:event

    ,通过forin循环来遍历NSSet中的每一个元素 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象, 保存着跟本次手指触摸相关的信息,比如触摸的位置、时间、阶段, 当手指离开屏幕时...,系统会销毁相应的UITouch对象 属性: (1)获取触摸产生时所处的窗口 @property(nonatomic,readonly,retain) UIWindow *window; (2)获取触摸产生时所处的视图...timestamp; (5)获取当前触摸事件所处的状态 触摸事件在屏幕上有一个周期,即触摸开始、触摸点移动、触摸结束,还有中途取消。...,readonly) CGFloat maximumPossibleForce; 方法: (1)返回当前触摸点在view上的位置 这里返回的位置是针对view的坐标系的(以view的左上角为原点(0,...view; 四、参数介绍:event UIEvent:称为事件对象,记录事件产生的时刻和类型,事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象。

    2.7K100

    iOS可视化动态绘制连通图(Swift版)

    下方这段代码的上一部分就是我们定义的一个闭包类型,用来将节点View的触摸事件回调给父视图。该闭包类型需要传一个参数,该参数就是当前View的Tag, 这样父视图就知道当前用户拖动的是哪个节点了。...下方这段就是节点View的TouchesMoved事件,在该事件中我们获取到当前用户触摸移动的坐标点,然后将该点赋值给当前节点View的Center,然后调用更新父视图的闭包回调对象即可。...我们整个图的关系是存储在邻接矩阵中的,所以我们要对邻接矩阵进行创建,在重绘时要对该邻接矩阵进行初始化。...然后判断移动时是不是超出屏幕范围,如果超出屏幕范围我们就要对运动方向进行修正,让其往反方向进行移动。本部分我们只需要修改节点View,而节点View的父视图不做修改。...在修改x和y坐标的值时要判断是否超出屏幕边距,如果超出屏幕边界就往反方向移动。为了让点一直运动下去,我们需要不断的调用changePoint()方法,如下所示。

    1.4K70

    Android OpenGL开发实践 - 基于OpenGL ES 2.0的Android相机实时图片涂鸦实现思路

    首先讨论坐标系的转换,引入画布之后,现在相关的坐标系又多了一个画布的坐标系,手指在屏幕上触摸之后,如何让图案最终在触摸的位置画出来呢?...手指在屏幕上触摸之后,onTouchEvent()中所得到的坐标是屏幕坐标系中的坐标,而相机有一个预览宽高的设置,这个宽高可以和屏幕宽高不一样,比如1080*1920的屏幕,相机的预览宽高可以设置为720...*960,因此第一个坐标系的转换就是将屏幕坐标系中的触摸点坐标转换成与相机预览宽高相对应的坐标,相机预览的坐标系原点及x、y轴方向与屏幕坐标系相同: ?...继续沿用之前的例子,前面是得到了触摸点在相机预览画面中的坐标是(200,400),它如何对应到涂鸦画面上面呢?...现在可以将手指在屏幕上触摸时在onTouchEvent()回调中所得到的触摸坐标正确地转换成涂鸦画布中的坐标了,那么如何在对应的坐标点画涂鸦图案呢?

    7.3K130

    WPF 已知问题 开启 WM_Pointer 消息之后 获取副屏触摸数据坐标偏移

    GetIntermediateTouchPoints 方法获取触摸点时,将会发现所获取的触摸点的坐标是偏的,偏的坐标差值刚好是整个屏幕距离 此问题由 少珺 小伙伴发现且修复,我只是代为记录的工具人 此问题已经报告给...通过 GetStylusPoint 或 GetIntermediateTouchPoints 等方法获取触摸点信息时,可以看到触摸点信息存在偏差,偏差的坐标差值刚好是整个屏幕距离,也就是差了 N 个屏幕距离...运行程序,将程序的主窗口移动到副屏上,对应用程序进行触摸 此时你将会发现应用程序无法绘制出你所画出的笔迹。...且所偏差的坐标差值刚好是整个屏幕距离,如果刚好你的两个屏幕的虚拟尺寸(非物理尺寸)是一样大的,那这个偏差就更好看出来了,如下图 问题原因: 此问题是在 WPF 框架中的 HwndPointerInputProvider.cs...在 HwndPointerInputProvider 的 GetOriginOffsetsLogical 方法里面,没有考虑多屏幕的坐标系问题,只是计算了当前窗口所在的屏幕的坐标,没有考虑应该计算整个大的虚拟屏幕的坐标

    31210

    如何响应用户交互事件

    手势操作在Flutter中分为两类: 第一类是原始的指针事件(Pointer Event),即原生开发中常见的触摸事件,表示屏幕上的触摸(或鼠标、手写笔)行为触发的位移行为。...指针事件 指针事件表示用户交互的原始触摸数据,如手指接触屏幕 PointerDownEvent、手指在屏幕上移动 PointerMoveEvent、手指抬起 PointerUpEvent,以及触摸取消...在手指接触屏幕,接触事件发起时,Flutter会确定手指与屏幕发生接触的位置上究竟有哪些组件,并将触摸事件交给最内层的组件去响应。事件会从这个最内层的组件开始,沿着组件树向根节点向上分发。...Flutter无法取消或停止事件的进一步分发,我们只能通过hitTestBehavior去调整组件在命中测试期内应该如何表现,比如把触摸事件交给子组件或者交给其视图层级之下的组件去响应。...Stack 组件去叠加视图,便于直接控制视图坐标 children: [ Positioned( top: _top, left: _left,

    2.2K10

    Android应用坐标系统全面详解

    同时也可以看见上图中给出了手指触摸屏幕时MotionEvent提供的一些方法解释,如下: MotionEvent坐标方法 解释 getX() 当前触摸事件距离当前View左边的距离 getY() 当前触摸事件距离当前...View顶边的距离 getRawX() 当前触摸事件距离整个屏幕左边的距离 getRawY() 当前触摸事件距离整个屏幕顶边的距离 上面就解释了你在很多代码中看见各种getXXX方法进行数学逻辑运算判断的含义...()是用于滑动View中的内容,而不是改变View的位置;改变View在屏幕中的位置可以使用offsetLeftAndRight()和offsetTopAndBottom()方法,他会导致getLeft...如果这里自定义的不是布局,而只是一个控件的话,就可以通过以上方法获取到坐标,然后要求自己所在的布局去重绘这一区域就可以了。... getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离  getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离 这些方法可以用在什么地方呢

    1.4K10

    iOS 小技能: Responder Chain(响应者链)【上篇】

    ,会创建一个与手指相关联的UITouch对象;一根手指对应一个UItouch对象。.../*返回值表示触摸在view上的位置 这里返回的位置是针对view的坐标系的(以view的左上角为原点(0, 0)) 调用时传入的view参数为nil的话,返回的是触摸点在UIWindow的位置*/...响应触摸事件的都是屏幕上的界面元素,而且必须是继承自UIResponder类的界面类(包括各种常见的视图类及其视图控制器类,如UIView和UIViewController)才可以响应触摸事件。...其中,前者用于递归寻找命中者,后者则是检测当前视图是否被命中,即触摸点坐标是否在视图内部。...命中检测具体迭代的过程为:如果触摸点在当前视图内,那么递归对当前视图内部所有的子视图进行命中检测;如果不在当前视图内,那么返回NO停止迭代。这样最终会确定屏幕上最顶部的命中的视图元素,即命中者。

    1.1K30
    领券