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

Android:将触摸传递到浮动视图下的视图(另一个应用)

Android中,要将触摸事件传递到浮动视图下的视图(另一个应用),可以使用以下方法:

  1. 使用WindowManager.LayoutParams设置浮动视图的类型为TYPE_APPLICATION_OVERLAY,以确保它位于其他应用程序之上。
  2. 创建一个透明的Activity,并将其设置为浮动视图的内容。可以通过设置Activity的主题为透明,去除标题栏和边框,使其看起来像一个浮动视图。
  3. 在透明Activity中,使用View.setOnTouchListener()方法来监听触摸事件。
  4. 在触摸事件的回调方法中,可以通过WindowManager.LayoutParams将触摸事件传递给浮动视图下的视图。具体可以使用WindowManager.LayoutParams的属性x和y来设置浮动视图的位置,使用WindowManager.LayoutParams的属性flags来设置浮动视图的行为,使用WindowManager.LayoutParams的属性token来设置浮动视图所在的窗口。
  5. 为了确保浮动视图下的视图可以接收触摸事件,可以使用WindowManager.LayoutParams的属性flags设置FLAG_NOT_TOUCH_MODAL,以允许触摸事件传递到浮动视图下的视图。
  6. 如果需要在浮动视图下的视图中显示内容,可以使用WebView加载网页或者使用SurfaceView进行绘制。

总结: Android中,要将触摸事件传递到浮动视图下的视图,可以通过设置浮动视图的类型、创建透明的Activity、监听触摸事件并传递给浮动视图下的视图来实现。具体实现过程中,可以使用WindowManager.LayoutParams来设置浮动视图的属性,以及设置浮动视图下的视图可以接收触摸事件的属性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

行为变更 | Android 12 中不受信任触摸事件

触摸控制是 Android 系统中同应用进行交互主要方式。Android 12 中采取了额外措施,来确保触摸事件被正确地传递给了应该响应此事件应用,以此确保触摸交互直观和安全性。...具体地说,就是在 Android 12 中,如果触摸事件是从一个不同应用窗口传递,那么此事件会被屏蔽。...这一改变影响所有在 Android 12 中运行应用,且与应用 "targetSdkVersion" 无关。这有助于帮助用户更直观地确认他们正在进行交互应用。...如果您应用不能使用上述 API,而是让触摸事件直接通过其窗口传递,那么在 Android 12 中它们可能无法按预期传递下层。...这样,在您 UI 外触摸事件,直接穿透下层窗口,不再被屏蔽。

1.3K30

安卓 topic-菜单 Menu

弹出菜单 弹出菜单将以垂直列表形式显示一系列项目,这些项目锚定调用该菜单视图中。 它特别适用于提供与特定内容相关大量操作,或者为命令另一部分提供选项。...处理点击事件 用户从选项菜单中选择项目(包括应用栏中操作项目)时,系统调用 Activity onOptionsItemSelected() 方法。 此方法传递所选 MenuItem。...创建浮动上下文菜单 要提供浮动上下文菜单,请执行以下操作: 通过调用 registerForContextMenu(),注册应与上下文菜单关联 View 并将其传递给 View。...创建弹出菜单 PopupMenu 是锚定 View 模态菜单。如果空间足够,它将显示在定位视图下方,否则显示在其上方。...如果使用 XML 定义菜单,则显示弹出菜单方法如下: 实例化 PopupMenu 及其构造函数,该函数提取当前应用 Context 以及菜单应锚定 View。

2.6K20

Android触摸事件机制

接下来触摸事件ev会传递给Activity窗口绑定视图rootView(View/ViewGroup),如果根视图也有子视图,事件ev会一级一级分发下去,如果在这个过程中ev被消耗了,事件就此结束分发...所有的视图布局都没有消耗掉ev事件,就会调用ActivityonTouchEvent()方法。下面会具体讲诉。 Android界面简析 在具体讲诉前,我们先来了解下android界面架构。...PhoneWindow一个DecorView设置为整个应用窗口根View。...可见事件传递activity视图就被结束分发了。下面已场景二来具体探究下这个过程。...整理视图如下: ? 同样,也可以假设老师人比较好,不忍心麻烦学生,自己处理了,这个过程类似女班长处理过程。 这里,我想大家对事件分发、拦截已经有一个比较清楚认识了。

70530

UI篇-UIResponder之事件传递和响应精析

未超出范围则进行步骤3 3.对当前视图下subviews采取逆序上述1 2步骤查询最优响应视图。...如果第一响应者没有进行处理,第一响应者事件处理事件责任传递给下一个,更高级对象,即当前responder对象nextResponder。...3.类似地,视图层次中每个后续视图如果不处理事件都首先传递给它视图控制器(如果有的话),然后是它视图。 4.最上层容器视图事件传递给UIWindow对象。...5.UIWindow对象事件传递给UIApplication单件对象。 6.如果应用程序找不到能够处理事件响应者对象,则丢弃该事件。 程序寻找能够处理事件对象,事件就在响应者链中向上传递。 ?...前一个方法使应用程序完全停止接收触摸事件消息,第二个方法则重启消息接收。某些时候,当您代码正在执行动画时,可能希望关闭事件传递

2.4K30

iOS 与 Android APP 设计差异

本文聚焦于iOS和Android交互设计模式之间区别,阐明iOS和Android应用看起来不同原因,以及它们为什么应该这样做。...最麻烦是涉及默认控件,比如单选按钮、复选框、tab切换等等,这些控件需要一个定制视图来实现显示Android上类似iOS控件或iOS上类似Android控件。...左边是标准Android按钮;右边是标准iOS按钮 还有一种非常有特点按钮类型——在Android上叫做浮动按钮,在iOS上叫做活动按钮。浮动按钮用来展示应用主要操作。...而在iOS中与之类似的按钮则叫做活动按钮,通常会放在底部导航中间 左边是标准iOS活动按钮;右侧是标准Android浮动按钮 IOS与Android底部操作视图差异 在Android中有两种不同类型底部操作视图...左边是标准Android底部菜单视图;右边是标准iOS标准菜单视图触摸范围和系统网格之间存在差异 iOS 和 Android触摸范围略有不同 (iOS最小触摸范围为44px @1x,Android

3.2K10

从零开始Android:常见UI设计模式

当您应用程序中只有几个部分时,此模式很有用,因为它为用户提供了一种快速简便方法来更改视图。 但是,如果要在选项卡中放入五个或更多项目,则应考虑导航操作移到抽屉中。...根据Android材料设计指南,选项卡也可以存在于屏幕底部,如Google+应用程序所示。 导航抽屉 导航抽屉是一个视图,可以从应用程序侧面滑出,以便向用户显示选项列表。...工具列 您可能已经注意Android应用程序中大多数页面在屏幕顶部都包含一个工具栏。...浮动动作按钮 浮动操作按钮模式使开发人员可以突出显示用户在应用程序一部分中可以执行单个操作。...请勿这种模式用于次要动作或任何具有破坏性操作,因为浮动动作按钮旨在在使用时在屏幕上有很强显示感。 3.

2.6K20

Flutter完整开发实战详解(二十、 Android PlatformView 和键盘问题)

所以为解决这个问题,Flutter 创建了一个叫 AndroidView 控件逻辑, 开发者使用该 Widget 可以 Android Native 组件嵌入 Flutter UI 中。...在 iOS 平台上就不使用类似 VirtualDisplay 方法,而是通过 Flutter UI 分为两个透明纹理来完成组合:一个在 iOS 平台视图之下,一个在其上面。...所以这样好处就是:需要在“iOS平台”视图下方呈现Flutter UI,最终会被绘制其下方纹理上;而需要在“平台”上方呈现Flutter UI,最终会被绘制在其上方纹理。...有关此替代方法详细讨论,详见 https://flutter.dev/go/nshc 2、相关问题和解决方法 尽管前面可以使用 VirtualDisplay Android 控件嵌入 Flutter...2.1.2、局限性 该实现逻辑会将新 MotionEvent 直接分发给 AndroidView ,如果这个 View 又派生了其他视图,那么就可能会出现触摸信息被发送到错误位置。

13.3K20

山川湖海 - Android无障碍功能优化实践

说来惭愧,反而是我们 Android 这边也一直没有专门进行过适配。 什么是无障碍功能? 对于一些障人群或者听障人群而言,普通App对它们来说使用起来可能困难重重。...与 原生UI 相比,Compose 在无障碍上要求就 [严格] 了不少,如果你使用是 非Text 组件,那么必须传递相应 contentDescription ,当然这个值也可以传递为 null...更多关于自定义View适配,可以查看Android官方文档-让自定义视图使用起来更没有障碍,里面主要是讲了通过无障碍代理类来实现。...比如如下: 添加描述 其会自动一些认为可以优化 View 标注出来,有些是触摸按钮太小,有些是对比度不够,在开发过程中,我们可以借此来实现快速调整。...是谁来自山川湖海,却囿于昼夜、厨房与爱 《万能青年旅店乐队》 参考 随手记Android无障碍实践 Android无障碍适配准则 让自定义视图使用起来没有障碍 Android无障碍功能帮助 我是Petterp

70321

Carson带你学Android:自定义View基础都在这里了!

前言 自定义View原理是Android开发者必须了解基础; 在了解自定义View之前,你需要有一定知识储备; 本文全面解析关于自定义View中所有知识基础。 目录 1....视图位置是相对于父控件而言,四个顶点位置描述分别由四个与父控件相关值决定: 顶部(Top):视图上边界父控件上边界距离; 左边(Left):视图左边界父控件左边界距离; 右边(Right...):视图右边界父控件左边界距离; 底部(Bottom):视图下边界父控件上边界距离。...//get() :触摸点相对于其所在组件坐标系坐标 event.getX(); event.getY(); //getRaw() :触摸点相对于屏幕默认坐标系坐标 event.getRawX...角度(angle)& 弧度(radian) 自定义View实际上是一些简单形状通过计算,从而组合到一起形成效果。

45720

深入理解 Android Window系统

Window作用 Window是Android窗口系统核心,扮演着多重角色,包括: 界面绘制:Window负责Activity定义用户界面绘制屏幕上,包括布局和视图绘制。...DecorView作用 DecorView在Android中具有以下关键作用: 容纳内容视图:DecorView是一个ViewGroup,它包含了应用程序内容视图。...内容视图是开发者定义用户界面布局,包括按钮、文本框、图像等元素。DecorView通过内容视图添加到自身来显示应用程序用户界面。 标题栏和状态栏:DecorView还包括标题栏和状态栏等元素。...系统提示框:用于显示系统级提示,如权限请求、应用更新等。 创建一个简单Window 首先,让我们创建一个简单Android Window,这个Window包含一个文本视图。...当用户与窗口交互(例如点击按钮)时,事件会传递给Window内容视图

47120

Flutter技术与实战(4)

实际上,Element 树这一层 Widget 树变化(类似 React 虚拟 DOM diff)做了抽象,可以只将真正需要修改部分同步真实 RenderObject 树中,最大程度降低对真实渲染视图修改...通过它,我们可以高效地数据在 Widget 树中进行跨层传递。...如果说 InheritedWidget 数据流动方式是从父 Widget 子 Widget 逐层传递,那 Notificaiton 则恰恰相反,数据流动方式是从子 Widget 向上传递至父 Widget...对于拥有多个页面的应用程序而言,如何从一个页面平滑地过渡到另一个页面,我们需要有一个统一机制来管理页面之间跳转,通常被称为路由管理或导航管理。...要导航一个新页面,我们需要创建一个 MaterialPageRoute 实例,调用 Navigator.push 方法新页面压到堆栈顶部。

10.7K20

可能是讲解Android事件分发最好文章

原文请点击这里: http://balpha.de/2013/07/android-development-what-i-wish-i-had-known-earlier/ 有时,你必须要自己处理触摸事件...我就遇到过这样时候,当时我很想有一篇文章能简单地解释触摸事件是怎样在视图层次(view hierarchy)中传播,从而可以将之作为进一步深入学习起点。...因为C说它正在处理这个手势(gesture),所以“手势剩余部分”事件也传递给ConTouchEvent方法,此时该方法返回true或false都无关紧要了,但是为保持一致最好还是返回true。...现在,DOWN事件被传递ConTouchEvent方法,该方法返回true,因为它想处理以该事件为首手势(gesture)。 现在,该手势下一个事件MOVE到来了。...当用户仅仅在它区域内点击(tap)时,被点击元素应当能处理该点击事件。但是当用户手指移动了一定距离后,就不能再该手势(gesture)为点击了——很明显,用户是想scroll。

60020

山川湖海 - Android无障碍功能优化实践

所以无障碍功能是应用开发中重要组成部分,通过集成无障碍功能和服务,可以提高应用易用性尤其是对于残障用户而言。...技术支持方面 一直以来,Android团队 都建议我们去适配无障碍功能,甚至于官方有专门网站及文档用于描述,在每年IO大会上,也都有提及: Android原生UI-构建无障碍功能更出色应用 Compose...更多关于自定义View适配,可以查看Android官方文档-让自定义视图使用起来更没有障碍,里面主要是讲了通过无障碍代理类来实现。...比如如下: 其会自动一些认为可以优化 View 标注出来,有些是触摸按钮太小,有些是对比度不够,在开发过程中,我们可以借此来实现快速调整。...参考 随手记Android无障碍实践 Android无障碍适配准则 让自定义视图使用起来没有障碍 Android无障碍功能帮助

84220

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

对屏幕触摸位置有了衡量标准,是不是就可以根据不同位置做触摸操作了呢?说到触摸操作,也需要细化之后单独处理。Android系统将用户操作行为,大致分为三种:按下行为,滑动行为,抬起释放行为。...如果每个视图都要细分用户操作行为,就会有大量冗余操作类型判断代码,所以AndroidSDK定义了一系列接口分别对应用操作类型。...事件传递机制 在上文界面响应三个方法中,关于他们被回调时机,有个前提是子视图没有处理,即子视图界面响应方法返回结果为false。这就涉及Android系统事件传递机制了。...那么,如果用户手指触摸到屏幕上,会触发按下行为,该行为作为事件首先传递视图中,之后根视图再将该事件传递给子视图,子视图再将该事件传递给子视图视图,这样按照加载时嵌套顺序一层层传递事件,称之为事件分发...直到该事件传递到最后一层子视图,或者某一层视图不再继续传递该事件,那么该事件将在最后传递这层视图中被首先处理。

40700

让 Flutter 在鸿蒙系统上跑起来

鸿蒙系统 (HarmonyOS)是华为推出一款分布式操作系统,那么如何在保证开发迭代效率前提下,以相对低成本移动应用快速移植鸿蒙平台上呢?...显然我们要做嵌入层移植鸿蒙上,确切地说,我们要通过鸿蒙原生提供平台能力,重新实现一遍 Flutter 嵌入层。...交互能力实现 交互能力是支撑 Flutter 应用能够正常运行另一个基本要求。在 Flutter 中,交互包含了各种触摸事件、鼠标事件、键盘录入事件传递及消费。...以触摸事件为例,Flutter 事件传递整个流程如下图所示: ?...Flutter 事件分发 iOS/Android 原生容器通过触摸事件回调 API 接收到事件之后,会将其打包传递至引擎层,后者事件传发给 Flutter 框架层,并完成事件消费、分发和逻辑处理

2.4K40

Jetpack 叒一新成员 DragAndDrop 框架:大大简化拖放手势开发!

、文本或者其他数据元素,然后直接拖放到 App 其他界面、甚至其他 App 界面,接着这个数据就被纳入界面内。...这个手势通常表现为在触摸屏上长按拖动或者非触摸屏上单击并用鼠标拖动,最后在目标位置放下。...使用起来很简单,需要监听视图包装进来并开始监听。框架会在拖动手势触发时候回调过来,之后进行一些简单配置即可。...需要传递数据包装到 ClipData 中 新建用于展示拖动效果图片实例 DragShadowBuilder 数据和拖动效果外加一些 Flag 交由 View 原生方法 startDragAndDrop...DRAG_FLAG_GLOBAL or DRAG_FLAG_GLOBAL_URI_READ) ) }.attach() DropHelper 另一个核心工具类 DropHelper,则关心拖动数据放下时机和目标视图

78220

Android实现通话最小化悬浮框效果

,这里他们只能允许一个视频画布存在,这里看情况要不要移除),于此同时,延时个几百毫秒,开启悬浮框,新建一个新视频画布然后动态添加到悬浮框里面去,监听悬浮框触摸事件,让悬浮框可以拖拽移动;监听悬浮框点击事件...这里我把悬浮框实现方法写在一个服务Service里面,悬浮框开启关闭与服务Service绑定解绑所关联起来,开启服务即相当于开启我们悬浮框,解绑服务则相当于关闭关闭悬浮框,以此来达到更好控制效果...这里初始化主要包括对:悬浮框基本参数(位置,宽高等),悬浮框点击事件以及悬浮框触摸事件(即可拖动范围)等设置,代码注释已经很清楚,直接看代码,如下所示: public class FloatVideoWindowService...wmParams.y = 210; //得到容器,通过这个inflater来获得悬浮窗控件 inflater = LayoutInflater.from(getApplicationContext()); // 获取浮动窗口视图所在布局...SDK,具体添加方式不同SDK而定,代码如下所示: /** * 初始化预览窗口 */ private void initSurface() { if (smallRender == null) {

2.5K50

探索 MotionLayout 动画世界

motionProgress :值为01之间小数,用来设置页面开始时动画进度。例如,motionProgress设置为0.5,那么页面将以动画进行一半状态开始。...touchAnchorId :可以滑动并拖动视图id(目标视图)。 touchAnchorSide :定义触摸点在目标视图位置。 top :触摸点位于目标视图上方。...bottom :触摸点位于目标视图下方。 left/start :触摸点位于目标视图左方。 right/end :触摸点位于目标视图又方。 middle :触摸点位于目标视图中心。...rotationCenterId :定义旋转中心视图 ID。 touchRegionId :定义触摸区域视图 ID。 limitBoundsTo :定义限制边界视图 ID。...可以设置为 0 100 之间整数,表示从动画开始结束之间相对位置。 motionTarget :定义应用此关键帧运动目标。可以是一个视图或者一个运动场景。

9010

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

事件产生 发生触摸事件后,系统会将该事件加入一个由UIApplication管理事件队列中,为什么是队列而不是栈?...事件传递 触摸事件传递是从父控件传递子控件 也就是UIApplication->window->寻找处理事件最合适view 注 意: 如果父控件不能接受触摸事件,那么子控件就不可能接收到触摸事件...事件响应 4.1 触摸事件处理整体过程 1 用户点击屏幕后产生一个触摸事件,经过一系列传递过程后,会找到最合适视图控件来处理这个事件 2 找到最合适视图控件后,就会调用控件touches方法来作具体事件处理...2.UIApplication会从事件队列中取出最前面的事件,把事件传递应用程序主窗口(keyWindow)。 3.主窗口会在视图层次结构中找到一个最合适视图来处理触摸事件。...:event]; } 事件传递和响应区别: 事件传递是从上到下(父控件子控件),事件响应是从下到上(顺着响应者链条向上传递:子控件父控件。

1.2K10
领券