Как получить непрерывное Сенсорное Событие?

Мой класс расширяет Представление, и я должен получить непрерывные сенсорные события на нем.

Если я использую:

public boolean onTouchEvent(MotionEvent me) {

    if(me.getAction()==MotionEvent.ACTION_DOWN) {
        myAction();
    }
    return true;
}

... сенсорное событие получено однажды.

Что, если я должен получить непрерывные касания, не шевеля пальцем? Скажите мне, что я не должен использовать потоки или таймеры. Мое приложение уже слишком много тяжело.

Спасибо.

11
задан daliz 29 March 2010 в 16:21
поделиться

2 ответа

Используйте if(me.getAction() == MotionEvent.ACTION_MOVE). Невозможно удержать палец на экране на 100% неподвижным, поэтому Action_Move будет вызываться каждый раз, когда палец движется, даже если это всего лишь пиксель или два.

Можно также проверять me.getAction() == MotionEvent.ACTION_UP - пока этого не произойдет, палец пользователя должен оставаться на экране.

15
ответ дан 3 December 2019 в 03:51
поделиться

Это простой фрагмент кода, который показывает, как вы можете обрабатывать событие продолжения касания. Когда вы касаетесь устройства и удерживаете касание и перемещаете искатель, выполняется действие «Сенсорное перемещение».

@Override
public boolean onTouchEvent(MotionEvent event) {
    float x = event.getX();
    float y = event.getY();
    if(isTsunami){
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            // Write your code to perform an action on down
            break;
        case MotionEvent.ACTION_MOVE:
            // Write your code to perform an action on contineus touch move
            break;
        case MotionEvent.ACTION_UP:
            // Write your code to perform an action on touch up
            break;
    }
    }
    return true;
}
4
ответ дан 3 December 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: