Android SimpleNogestureListener,onDoubleTapEvent在短时间后暂停,直到手势完成
我正在尝试使用双击并按住/移动来实现平移操作(旋转操作已经执行了单次点击并按住/移动)。但是,OnDoubleTapeEvent函数在用户移动时仅接收约18个MotionEvent,然后暂停,直到用户完成手势,此时它将在实际完成手势之前再接收一个MotionEvent 因此,用户可以将对象平移一小段距离,在这一点上,即使用户仍在拖动,对象也会冻结。当用户释放时,对象将捕捉到正确的位置。我希望用户能够拖动/平移她/他想要的任何时间。任何提示都将不胜感激 这是onDoubleTap和onDoubleTapEvent函数的实现:Android SimpleNogestureListener,onDoubleTapEvent在短时间后暂停,直到手势完成,android,Android,我正在尝试使用双击并按住/移动来实现平移操作(旋转操作已经执行了单次点击并按住/移动)。但是,OnDoubleTapeEvent函数在用户移动时仅接收约18个MotionEvent,然后暂停,直到用户完成手势,此时它将在实际完成手势之前再接收一个MotionEvent 因此,用户可以将对象平移一小段距离,在这一点上,即使用户仍在拖动,对象也会冻结。当用户释放时,对象将捕捉到正确的位置。我希望用户能够拖动/平移她/他想要的任何时间。任何提示都将不胜感激 这是onDoubleTap和onDouble
@Override
public boolean onDoubleTap(MotionEvent event) {
eventpan.x = event.getX();
eventpan.y = event.getY();
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent event) {
oglrenderer.panx += 0.005f * ( event.getX() - eventpan.x);
oglrenderer.pany += - 0.005f * ( event.getY() - eventpan.y);
eventpan.x = event.getX();
eventpan.y = event.getY();
return true;
}
这只是更改渲染器中平移的x和y坐标,其onDraw函数基本上如下所示:
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glPushMatrix();
gl.glTranslatef(panx, pany, zoom);
object.draw(gl);
gl.glPopMatrix();
gl.glFlush();
}
我目前正在为Android 4.0设计API级别14。同样,任何提示都将不胜感激。与其说是答案,不如说是提示。我正试图解决一个类似的问题,我发现一个LongPress事件发生了,它结束了大多数未来的事件。研究它;似乎GestureDetector类强制在LongClick事件上返回true,或者类似的东西。我将继续研究它,并希望尽快找到一个合适的解决方案 编辑:所以目前我设置为长按启用(false),以允许双击滚动工作。不太好,因为我确实希望最终也有一个长点击的手势,但它现在起作用了