2012-02-18 47 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手勢,但它現在還在工作。

相關問題