我正在开发一个需要将所有手指都放在 Android 屏幕上的应用程序。这并不复杂,我可以用几行代码来完成。
然而,android 发送回调的方式并不是我所需要的。我做了很多测试,以下是我能找到的:
一旦他发送了手指位置,如果没有进行“大”移动,他将不会发送 onTouch 事件。
此外,当一个手指从屏幕上移除时(例如:有 3 个手指,其中一个被移除),如果至少有一个剩余手指在屏幕上移动,它似乎只发送下一个事件。
我正在对手指进行一些跟踪,并与对象进行匹配,要正确执行此操作,我需要一直知道所有手指的位置。如果没有办法“请求”手指的触摸事件,即使它没有移动,我如何在没有回调事件的情况下访问当前手指位置?还有其他解决方案吗?
这是我的代码:
ArrayList<Vector3> fingerTips = new ArrayList<Vector3>();
@Override
public boolean onTouchEvent(MotionEvent event) {
final int points = event.getPointerCount();
String out = "==========\n";
fingerTips.clear();
for(int i = 0; i < points; i++){
out += "\tPoint "+i+"\t("+event.getX(i)+", "+event.getY(i) + ")\n";
fingerTips.add( new Vector3(event.getX(i), event.getY(i)) );
}
Log.i(TAG, out);
// Send touches to SurfaceView
chwaziViewGL.onUpdateFingerTips(fingerTips);
return true;
}