我试图使用双击并按住/移动以实现平移操作(单击并按住/移动已被旋转操作采用)。但是,onDoubleTapEvent函数在用户移动时仅接收大约18个MotionEvent,然后挂起,直到用户完成手势,此时在实际完成手势之前它将再接收一个MotionEvent。SimpleOnGestureListener,onDoubleTapEvent在一段时间后暂停,直到手势完成
因此,即使用户仍在拖动,用户可以将物体移动一小段距离,此时它会冻结。当用户释放时,对象将捕捉到正确的位置。我希望用户能够拖/只要她/他想。任何提示真的会被赞赏。
这是onDoubleTap和onDoubleTapEvent功能的实现:
@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设计。再次,任何提示将不胜感激。