gpt4 book ai didi

Android 多点触控得到错误的指针和/或 XY 值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:19 25 4
gpt4 key购买 nike

我在从 mutlitouch 事件中获取 X 和 Y 值时遇到问题。下面的代码显示了当触发 POINTER_DOWN 和 POINTER_UP 事件时我如何获取值,但是 X 和 Y 值似乎在 POINTER_UP 事件上混淆/重复。

@Override
public void onTouchEvent(MotionEvent event) {

int id, pointerIndex;

switch (event.getAction() & MotionEvent.ACTION_MASK) {

case MotionEvent.ACTION_POINTER_DOWN:

pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK)
>> MotionEvent.ACTION_POINTER_ID_SHIFT;
id = event.getPointerId(pointerIndex);

Log.e("Down", ""+id+" "+event.getX(id)+" "+event.getY(id));

break;

case MotionEvent.ACTION_POINTER_UP:

pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK)
>> MotionEvent.ACTION_POINTER_ID_SHIFT;
id = event.getPointerId(pointerIndex);

Log.e("UP", ""+id+" "+event.getX(id)+" "+event.getY(id));

break;
}

super.onTouchEvent(event);

}

这通常会导致以下笑话:

E/DOWN    (25070): 0 279.60922 279.17447
E/DOWN (25070): 1 513.20044 520.3252
E/DOWN (25070): 2 422.6651 358.72418

E/UP (25070): 0 279.60922 279.17447
E/UP (25070): 1 422.6651 358.72418
E/UP (25070): 2 422.6651 358.72418

在这里您可以看到 id 1 的 XY 位置是错误的,而是显示值 id 2。

请注意,没有调用 ACTION_CANCEL 事件。我想我使用 MASKS/ANDing 有问题。任何帮助将不胜感激!

最佳答案

显然 event.getX 和 event.getY 应该被提供给指针 index,而不是指针 id

关于Android 多点触控得到错误的指针和/或 XY 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588699/

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