Android (Java) 中没有事件的触摸位置
Touch position without events in Android (Java)
我正在开发一个模拟触控板的应用程序。
我需要在每个时间点获得位置的准确值,但使用事件是行不通的。
由于运动事件ACTION_MOVE
"starts"仅当我从调用ACTION_DOWN
的位置移动一点时发送事件,该位置将停留在那里直到我将手指移得更远远离起始位置。
另外,在读取数据的过程中,位置最终会出现短时间的卡住。
有什么方法可以强制获取触摸的位置,例如,类似于在 Unity 上的做法? (Touches[touchIndex].Position
)
我使用的代码无法完成工作:
@Override
public boolean onTouchEvent(MotionEvent event) {
x = event.getX();
y = event.getY();
}
无法轻松获取原始触摸数据。 touchEvent 是最好的方法。延迟的原因是 "TOUCH_SLOP" android 用来确定手指移动是否足以触发事件广播。没有可以调用的方法来减少这种情况,因此最好的选择是尝试扩展 View 并将 mTouchSlop 设置为零或较小的值,这将更频繁地触发触摸广播。在这里查看更多:
Android ACTION_MOVE Threshold
我正在开发一个模拟触控板的应用程序。 我需要在每个时间点获得位置的准确值,但使用事件是行不通的。
由于运动事件ACTION_MOVE
"starts"仅当我从调用ACTION_DOWN
的位置移动一点时发送事件,该位置将停留在那里直到我将手指移得更远远离起始位置。
另外,在读取数据的过程中,位置最终会出现短时间的卡住。
有什么方法可以强制获取触摸的位置,例如,类似于在 Unity 上的做法? (Touches[touchIndex].Position
)
我使用的代码无法完成工作:
@Override
public boolean onTouchEvent(MotionEvent event) {
x = event.getX();
y = event.getY();
}
无法轻松获取原始触摸数据。 touchEvent 是最好的方法。延迟的原因是 "TOUCH_SLOP" android 用来确定手指移动是否足以触发事件广播。没有可以调用的方法来减少这种情况,因此最好的选择是尝试扩展 View 并将 mTouchSlop 设置为零或较小的值,这将更频繁地触发触摸广播。在这里查看更多:
Android ACTION_MOVE Threshold