2012-01-14 12 views
4

私はAndEngineを使ってonSceneTouchEventのイベントをキャプチャしています。Androidでダブルタップをキャプチャする

私がしたいことは、ユーザーが画面をタップしていることをキャプチャすることを許可していないことです。

ダブルタップを検出したり無効にしたりする方法はありますか?

おかげ

+1

から撮影

public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if(firstTap){ thisTime = SystemClock.uptimeMillis(); firstTap = false; }else{ prevTime = thisTime; thisTime = SystemClock.uptimeMillis(); //Check that thisTime is greater than prevTime //just incase system clock reset to zero if(thisTime > prevTime){ //Check if times are within our max delay if((thisTime - prevTime) <= DOUBLE_CLICK_MAX_DELAY){ //We have detected a double tap! Toast.makeText(DoubleTapActivity.this, "DOUBLE TAP DETECTED!!!", Toast.LENGTH_LONG).show(); //PUT YOUR LOGIC HERE!!!! }else{ //Otherwise Reset firstTap firstTap = true; } }else{ firstTap = true; } } return false; } 

あなたはこのソリューションを見たことがありますか?システムクロックを使用して遅延時間を計測するにはhttp://stackoverflow.com/questions/6716224/ontap-listener-implementation?それは助けるかもしれません。 – TryTryAgain

+0

Hmm。興味深いことに、あなたが答えのような例を提示するならば、それを正しくマークするでしょう。 –

+0

リンクをありがとう。それは役に立ちました –

答えて

3

EDIT:

から撮影
// in an onUpdate method 

onUpdate(float secondsElapsed){ 

if(touched){ 
if(seconds > 2){ 
doSomething(); 
touched = false; 
seconds = 0; 
} else{ 
seconds += secondsElapsed; 
} 
} 

} 

::より多くのいくつかの周りに見た後、私はこれは、より良いあなたに合うかもしれないと思う上記のコメントに基づいてhttp://www.andengine.org/forums/gles1/delay-in-touchevent-t6087.html

を、私は確信していますSystemClockを使用して、次の項目で何かを終わらせることができます。あなたが遅れ、これに似たような追加に逃げることができ

OnTap listener implementation

+0

ありがとう。素晴らしい答え –