05
Янв
2018

Как реализовать задержку между событиями касаний и с мультитачем?

Есть такой код:

public boolean onTouch(View v, MotionEvent event) {

    int action = event.getActionMasked();
    int index = event.getActionIndex();

    int x = (int)event.getX(index);
    int y = (int)event.getY(index);;
    int id = event.getPointerId(index);


    switch (action) {

        case MotionEvent.ACTION_DOWN : {
            Touch touch = Touch.create(id, x, y, Touch.DOWN);
            TouchManager.addTouch(touch);
        }

        case MotionEvent.ACTION_POINTER_DOWN : {
            Touch touch = Touch.create(id, x, y, Touch.DOWN);
            TouchManager.addTouch(touch);
            break;
        }

        case MotionEvent.ACTION_UP : {
            TouchManager.updateTouch(id, x, y, Touch.UP);
        }

        case MotionEvent.ACTION_POINTER_UP : {
            TouchManager.updateTouch(id, x, y, Touch.UP);
            break;
        }

        case MotionEvent.ACTION_MOVE : {
            TouchManager.updateTouch(id, x, y, Touch.MOVE);
            break;
        }
    }

    return true;
}

Он работает, но не совсем так, как хотелось бы. Дело в том, что если нажать на экран, то сразу вызывается "DOWN", а если отпустить, то "UP" не вызывается. Если же сразу начать водить пальцем по экрану, то "DOWN" не вызывается, а сразу вызывается "MOVE", а если отпустить палец, то вызывает "UP". Да и события слишком быстро проходят.

Мне нужно, что было так: Нажимаем на экран. Вызываем "DOWN" и если поднять пале менее, чем за 0.5 секунды, например, то вызывает "UP". Ну если продолжить двигать палец, то чтоб вызывало "MOVE", а после отпускания "UP".

Т.е down > move(если начать движение)|up(меньше 0.5 секунд палец на экране) > up(если было движение).

Источник: https://ru.stackoverflow.com/questions/767088/%D0%9A%D0%B0%D0%BA-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F%D0%BC%D0%B8-%D0%BA%D0%B0%D1%81%D0%B0%D0%BD%D0%B8%D0%B9-%D0%B8-%D1%81-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%82%D0%B0%D1%87%D0%B5%D0%BC

Тебе может это понравится...

Добавить комментарий