2012-02-18 50 views
1

我试图使用双击并按住/移动以实现平移操作(单击并按住/移动已被旋转操作采用)。但是,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设计。再次,任何提示将不胜感激。

回答

0

与其说是小费,不如说是答案。我试图解决类似的问题,并且我发现发生了LongPress事件,这会结束大多数未来事件。了解更多;似乎GestureDetector类强制LongClick事件返回true,或类似的东西。我会继续研究它,并希望尽快提出适当的解决方案。

编辑:所以现在我去setIsLongpressEnabled(假),以允许双击滚动工作。不是太好,因为我最终也需要一个LongClick手势,但它现在还在工作。

相关问题