Захват двойных нажатий в Android - PullRequest
4 голосов
/ 14 января 2012

Я фиксирую событие onSceneTouchEvent с помощью AndEngine.

То, что я хочу сделать, это не позволить ему захватить пользователя двойным нажатием на экран.

Есть ли способ обнаружить двойные касания или отключить их?

Спасибо

1 Ответ

3 голосов
/ 14 января 2012

РЕДАКТИРОВАТЬ: После осмотра еще немного, я думаю, что это может лучше подойти вам:

// 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.

Вы можете избежать добавления задержки, что-то вроде этого:

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;
        }

Взято из Реализация слушателя OnTap

...