Android getX/getY 交错相对/绝对坐标

2024-03-10

有很多关于 MotionEvent.getX/.getY 如何“不可靠”(或其他术语)的讨论,以及我们应该使用这些调用的原始版本来获取坐标。

在我的 Nexus 7 上,我发现 .getX/.getY 可靠地返回交错的绝对和相对坐标。换句话说,假设给定的 ACTION_MOVE 事件在调用 .getX 和 .getY 时返回绝对坐标。下一个 ACTION_MOVE 事件将在其 .getX 和 .getY 调用上返回相对坐标。

这不可能是偶然的行为。这也让我相信一定有一种方法可以辨别给定的 ACTION_MOVE 是否会返回绝对坐标或相对坐标。

有谁知道如何检查给定的 MotionEvent 对象以查看它是否在其 .getX 和 .getY 调用上返回绝对坐标与相对坐标?

编辑:根据您的要求,这是代码。没什么特别的,只需获取坐标并移动 View 对象即可:

public boolean  onTouch(View v,MotionEvent event) {

    boolean bExitValue = true;
    float   fX;
    float   fY;
    int     iAction;

    iAction = event.getActionMasked();

    if (MotionEvent.ACTION_MOVE == iAction) {
        fX = event.getX();
        fY = event.getY();
        v.setX(fX);
        v.setY(fY);
        Log.d("",("X: " + fX + ", Y: " + fY));
    }

    else if (MotionEvent.ACTION_DOWN != iAction) {
        bExitValue = false;
    }

    return(bExitValue);

}

Log.d 调用和独立浮点并不是使代码正常工作所必需的,但它们确实允许您在 LogCat 窗口中查看值的交错。


我发现,在 Galaxy s 4 上 getY 和 getRawY 都是错误的。但它们以正交方式变化。因此可以通过以下代码获取正确的值:

rawY = event.getRawY() - spaceOverLayout;
normalY = event.getY();
y = 0F;

float prozentPosition = ((rawY + normalY) / 2) / height;
y = (normalY * (1 - prozentPosition)) + (rawY * prozentPosition);

希望它会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android getX/getY 交错相对/绝对坐标 的相关文章

  • 启动画面反应本机后出现白屏

    编辑 似乎是因为 MainActivity 加载太重而生成白屏 我设法首先使用本机启动屏幕来解决 然后在本机被杀死后立即基于下一个插件的 js 实现 我做了一些修改完美匹配两个启动画面https github com crazycodebo
  • GCM 通知的自定义 UI

    In GCM Docs http developer android com google gcm gcm html其给定 它不提供任何内置用户界面或其他处理 消息数据 GCM 只是将收到的原始消息数据直接传递给 Android 应用程序
  • 如何设置itemTouchHelper选择性滑动?

    所以我在 recyclerview rv 上实现了这个 itemtouchhelper simple 回调 现在 在这个 rv 中 我根据内容类型将 2 种布局设置为一行 因此 当我在 rv 上设置此 touchhelper 时 它正在这两
  • 卡片视图工具栏

    我有一个包含 CardView 的 RecyclerView 我想向每个 CardView 添加一个工具栏 其外观和行为类似于主工具栏 图标 标题 按钮 按钮 菜单 我从这里看到了 http blog grafixartist com cr
  • API 31 上是否有官方方法来提供文件关联,可能使用 pathSuffix/pathAdvancedPattern?

    背景 现代桌面操作系统上的一个众所周知的功能是能够处理文件 允许用户从文件管理器和其他应用程序中打开它们 作为 文件关联 配置 问题 到目前为止 对于用户和开发人员来说 在 Android 上设置文件类型关联并不是一件很方便的事情 在 An
  • 如何在发布版本中使用 Zebra EMDK?

    所以我有一台 Zebra MC330M 设备 我之前创建了一个应用程序 我想使用 PDA 内置的条形码扫描仪 如果在调试模式下运行我的应用程序 一切正常 我可以读取条形码 但是如果我创建暂存或释放版本 apk 则条形码读取器不活动 因此如果
  • Android 中的 XmlPullParser 陷入困境

    经过多个小时的搜索和调试后 我仍然停留在同一个地方 并且 Eclipse 没有帮助我 我试图解析这个 RSS 提要 http fr espnf1 com rss motorsport story feeds 0 xml type 2 这很简
  • 如何防止 Activity 在后退操作时重新加载

    我有连接到互联网以获取数据的应用程序 我可以多层次访问数据 假设我从第 3 级开始 在第 4 级我决定返回 每当我按回之前的活动时 就会从互联网重新加载数据 有可能阻止这种情况吗 我尝试以单顶模式运行该活动 将数据加载代码移至 single
  • Android Activity 和 Service 关系 - 暂停后、停止后

    假设创建了 Activity A 然后 A 启动了一个 Service S 并将其自身绑定到 S S 通知 A 更新 这将导致 A 的状态发生变化 Android 暂停或停止 A 后 A 和 S 会发生什么 例如 暂停 A 是否会自动解除它
  • Android:每秒更新蓝牙 RSSI

    我试图每秒显示蓝牙信号强度 RSSI Timer 来自检测到的设备 但我无法调用onRecive 多次因为接收器生命周期 http developer android com reference android content Broadc
  • GSON:自定义对象反序列化

    好吧 我编辑了这个问题 因为它不够清楚 Edit 2 更新了 JSON 文件 我在 Android 应用程序中使用 GSON 我需要解析来自服务器的 JSON 文件 而且有点太复杂了 我不想让我的对象结构太重 所以我想简化内容 所以我的对象
  • 完成特定 Activity 的所有实例

    应用程序中可以有很多活动 最后启动的活动保留在堆栈顶部 按下后它会完成当前活动 我有一系列活动 这是流程 如果我们有 A B C 1 D C 2 活动 C 1 和 C 2 是在导航应用程序时启动的活动 C 的两个不同实例 因此 必需的是清除
  • 创建用于 Android 库分发的 JAR

    我正在开发一个 android 库 并希望导出一个 JAR 文件 我可以分发该文件供其他人在他们的应用程序中使用 我不想分发源代码 因为它包含有关发布到我的网络服务器的详细信息 我尝试使用在 bin 目录中创建的 JAR 文件并将该 jar
  • 我可以在导航组件中使用多个 NavHostFragment 吗?

    如果您难以理解以下段落 请查看我制作的流程图 我目前正在制作一个带有 3 个顶级目的地的笔记应用程序 顶级目标之一 NotesList 显示用户创建的注释列表 NotesList 有一个过滤器按钮 可显示带有 FilterMenu 目标的底
  • 当创建 Android Jetpack Compose AndroidView 的参数发生变化时,如何替换它?

    我有一个应用程序 显示封装在其中的几个不同视图AndroidView 在下面重现的简单示例中 这些只是TextView实例 问题是更改文本 在本例中循环显示三个不同的值 似乎不会更新应用程序显示的内容 sealed class AppVie
  • Webview 中的 Java 空指针异常

    我试图搜索这个问题 但这个错误看起来与这个错误 https stackoverflow com questions 21866459 android nullpointerexception on webview 我的 google pla
  • Android EditText 不起作用,android:imeOptions="actionNext" android:inputType="phone"

    我已经尝试过了 只有删除android inputType phone 键盘回车可以跳转到下一个EditText 不知道大家之间是否有过一些冲突android imeOptions actionNext and android inputT
  • 动画结束后更改视图位置

    我开发了一个基于ViewGroup我的问题是我需要在动画结束后保存项目的位置 我打了电话setFillAfter true 在我创建的动画对象中AnimationListener并在其中onAnimationEnd方法调用View layo
  • 如何为背景图像添加内边距

    我有一个LinearLayout其中有一个背景图像 一个 9 修补的 png 文件 如何向左和右添加填充 以使背景图像不占据整个宽度 我努力了android paddingLeft and android paddingRight 但这并没
  • Android 使用非公历

    我正在创建一个DatePickerDialogFragment用户将在其中选择出生日期 我想确保我可以处理非公历日期 我无法更改在我的设备上使用的日历类型 Android 是否允许用户切换日历类型 如果是的话 步骤是什么 到目前为止我还没有

随机推荐

  • 无法将嵌套应用程序中的自定义 Django 模型指定为 AUTH_USER_MODEL

    我无法指定自定义AUTH USER MODEL如果该模型位于nested应用 这是一些项目结构 project settings py my parent app init py apps py my child app init py a
  • JUnit:如何避免测试实用程序类中的“无可运行方法”

    我已经从JUnit3 8切换到JUnit4 4 我使用 ant 运行测试 所有测试都成功运行 但测试实用程序类失败并出现 无可运行方法 错误 我使用的模式是在测试文件夹下包含名为 Test 的所有类 我知道运行程序找不到任何用 Test 属
  • Scrapy、privoxy 和 Tor:SocketError:[Errno 61] 连接被拒绝

    我将 Scrapy 与 Privoxy 和 Tor 一起使用 这是我之前的问题Scrapy 与 Privoxy 和 Tor 如何更新 IP https stackoverflow com questions 45009940 scrapy
  • 在 Android 上查找圆上的点

    一切看起来都那么简单明了 直到我必须真正对其进行编程 我有什么 我上传了一张图片以更好地解释它 我有一个圈子 我知道 它是半径 中心点坐标 每个按钮的初始坐标 红色圆圈 我希望能够在将灰色圆形图像旋转 10 度时计算红色按钮的新坐标 x1y
  • winform中如何只验证数字?

    如何在不使用按键选项的情况下验证数字 为什么不是Char IsNumber or IsDigit在职的 或者我应该使用正则表达式进行验证 private bool ValidateContact if Char IsNumber textB
  • Java:将浮点二进制转换为浮点十进制

    我想转换表示 IEEE754 双精度数尾数部分的字符串 找不到Java中是否有这样的转换方法 以避免手动添加1 1 2 1 4 1 8等 010000001100101000011111000000000000000000000000000
  • htaccess 清理 URL 的最佳方法是什么?

    我正在为我的网站开发干净的网址 我注意到您在互联网上找到的内容几乎都是将您的干净网址重写为您的服务器可以使用的网址 所以像这样 www domain com profile username gt www domain com profil
  • 用于分析 .Net 应用程序内存转储的工具

    有人可以推荐一个好的吗free除了 Adplus windbg sos 之外 还有用于分析 Net 内存转储的工具吗 你可以尝试一下调试诊断1 1 http blogs msdn com tess archive 2008 05 21 de
  • 是什么导致 Python 错误“bad escape \C”?

    我刚刚编写了一个函数 它将查看文本文件并计算文本文件中 True 和 False 的所有实例 这是我的文件 ATOM 43 CA LYS A 5 14 038 15 691 37 608 1 00 15 15 C True ATOM 52
  • Raft算法:term什么时候会增加?

    Raft将时间划分为任意长度的术语 如图5所示 术语用连续的整数编号 每个任期以一次选举开始 其中一名或多名候选人试图成为领导者 如第 5 2 节所述 如果候选人赢得选举 那么他将在剩余任期内担任领导者 在某些情况下 选举会导致投票分散 在
  • 为什么从搅拌机导出到 Unity 时我的 (FBX) 网格体有孔?

    我现在正在学习雕刻我的角色 当我将 FBX 文件从 Blender 导出到 Unity 时 网格物体的脸上有一个巨大的洞 我该如何预防 解决这个问题 它在 mixamo 中工作得很好 在此输入图像描述 https i stack imgur
  • C++11 中字符串文字的 Unicode 编码

    继一个相关问题 https stackoverflow com questions 6794590 how does file encoding affect c11 string literals 我想问一下C 11中新的字符和字符串文字
  • NUnit 插件与 Resharper 5

    最新的 Resharper v5 版本基于本机 NUnit 代码并允许 NUnit 插件 我有一个 NUnit 插件 可以在 NUnit GUI 中正常工作 但无法使其与 Resharper 一起工作 根据 R 指示 我已将插件库放入 Re
  • 如何使用 PHP/MySQLi 将 NULL 放入 MySQL 整数列?

    我通过 URL 将值传递到 PHP 页面 并在 MySQLi 查询中使用它们 问题在于 对于整数列 空字符串会转换为零 而实际上它需要为 NULL 如何使用 PHP MySQLi 从 URL 中传递的参数获取 NULL 到整数列中 更新 下
  • 不推荐在 build.gradle 中“启用”Android 数据绑定

    in build gradle file dataBinding enabled true enabled已弃用 找不到任何有关它的文档 任何人有任何想法如何解决它 尝试将其替换为 buildFeatures dataBinding tru
  • 获取多个 Pandas DataFrame 的平均值

    我正在生成许多具有相同形状的数据框 并且我想将它们相互比较 我希望能够获得数据帧的平均值和中位数 Source 0 Source 1 Source 2 Source 3 cluster 0 0 001182 0 184535 0 81423
  • 无法让 SendInput() 工作

    我有点绝望了我已经尝试了几个小时了 但就是无法得到SendInput 上班 说实话 我什至无法得到它的认可 它总是说 Error 1 The type or namespace name INPUT could not be found a
  • 如何将页面分为三个垂直部分?

    我想将我的网页转换为四个部分 一横三竖 水平截面还可以 但是垂直截面有两个问题 它们没有填满整个屏幕高度 第三部分与第二部分重叠近10或20个像素 这是我的CSS body width available height available
  • Maven 3 密码加密是如何工作的?

    我正在尝试了解 Maven 3 的 密码加密功能 我发现这个功能的文档记录很少并且令人困惑 例如 功能文档 https maven apache org guides mini guide encryption html and 该功能作者
  • Android getX/getY 交错相对/绝对坐标

    有很多关于 MotionEvent getX getY 如何 不可靠 或其他术语 的讨论 以及我们应该使用这些调用的原始版本来获取坐标 在我的 Nexus 7 上 我发现 getX getY 可靠地返回交错的绝对和相对坐标 换句话说 假设给