gpt4 book ai didi

Android:补偿由于菜单/工具栏引起的屏幕偏移?

转载 作者:行者123 更新时间:2023-11-29 00:29:37 25 4
gpt4 key购买 nike

MotionEvent.getRawX/.getRawY 返回绝对坐标(即基于整个屏幕)。但是接收 MotionEvent 的 View 可能(可能是)另一个 View 的 subview ,它本身可能在屏幕上有一些偏移等。

特别是,我现在正在试验一个基本的应用程序,Android 菜单/工具栏(带有时钟等)在屏幕顶部可见。当我调用 .getRawX/.getRawY 时,我得到了整个显示器的准确 X/Y 坐标 - 但如果可以有菜单,或者如果(大)父 View 本身小于屏幕并偏离屏幕边缘?

现在,如果我使用 .getRawX/.getRawY 的返回值来重新定位 View ,它们可以工作,但 View 会“跳”到屏幕顶部菜单的高度,因为“由于其上方的菜单,“绝对”Y 值实质上增加了父 View 的垂直偏移量。因此,需要一种通用的方法来确定父 View 在屏幕的绝对坐标中的位置,以便可以在用于重新定位相关 View 之前调整原始 X/Y 值。

我懒得发布代码,因为它基本上是本网站和许多其他网站上“通过触摸 move View ”的所有其他示例的副本。我没有要查找的错误...我正在寻找将 MotionEvent 的绝对坐标与未 100% 全屏运行的任何应用程序的相对坐标相关联的方法。

最佳答案

您可以使用 View.getLocationOnScreen() 找到 View 的绝对屏幕坐标,然后在屏幕坐标中计算出所有内容和/或您自己基于此进行转换。

关于Android:补偿由于菜单/工具栏引起的屏幕偏移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16683083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com