2010-07-14 9 views

답변

7

(특히, isConsideredDoubleTap 방법을보고)가 필요합니다 비트를 복사합니다.

0

GestureDetector의 소스 코드를보고 당신이 더블 탭을 의미하는 경우 GestureDetector.OnDoubleTapListener를 사용할 필요가

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/GestureDetector.java

+0

두 번 클릭하면 다른 activity.if로 이동합니다. 다른 곳으로 이동하면 제스처 탐지기가 사용됩니다. 다른 활동으로 이동하면 차트 응용 프로그램을 사용하고 있습니다. – user386430

2

두 번째 클릭이 첫 번째 클릭의 특정 시간 내에 있었는지 확인해야합니다. 그렇지 않으면 두 번째 클릭으로 간주합니다. 어쨌든 그렇게 할 수있는 방법입니다.

1

첫 번째 및 두 번째 클릭 시간을 기록하기 위해 setOnTouchListener를 사용하기 만하면됩니다. 그들이 매우 가깝다면 더블 클릭으로 결정하십시오. 이처럼

public class MyActivity extends Activity { 

    private final String DEBUG_TAG= "MyActivity"; 
    private long firstClick; 
    private long lastClick; 
    private int count; // to count click times 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Button mButton= (Button)findViewById(R.id.my_button); 
     mButton.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       switch (motionEvent.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
         // if the second happens too late, regard it as first click 
         if (firstClick != 0 && System.currentTimeMillis() - firstClick > 300) { 
          count = 0; 
         } 
         count++; 
         if (count == 1) { 
          firstClick = System.currentTimeMillis(); 
         } else if (count == 2) { 
          lastClick = System.currentTimeMillis(); 
          // if these two clicks is closer than 300 millis second 
          if (lastClick - firstClick < 300) { 
           Log.d(DEBUG_TAG,"a double click happened"); 
          } 
         } 
         break; 
        case MotionEvent.ACTION_MOVE: 
         break; 
        case MotionEvent.ACTION_UP: 
         break; 
       } 
       return true; 
      } 
     }); 
    } 
} 
관련 문제