Я нашел это.Андроид дает ACTION_MOVE, а затем ACTION_UP для того же (или близкого) местоположения.iPhone не делает этого вообще!Это просто дает штрихи!Так что, если есть движение, у меня всегда будет 3 очка на андроиде ВСЕГДА, но на iPhone его 2 очка (приземлиться, подправить оба в разных местах)
Следующая вещь - это ACTION_MOVE AND ACTION_UP donне происходит сразу, и его значительный временной интервал при расчете средней скорости точек выборки.
Решение: на ACTION_UP, если есть ACTION_MOVE, сдвиньте все сохраненные секунды, чтобы ACTION_MOVE «происходило», когдаACTION_UP произошел.Не ставьте последнюю точку в расчете скорости.А теперь вычислите скорость как обычно.
Сводка
В Android, если вы двигаете пальцем, вы получите ACTION_MOVE перед ACTION_UP.И ACTION_UP находится примерно в том же месте в ACTION_MOVE, создавая впечатление, что скорость в конце равна примерно 0. iPhone не делает этого, iPhone не дает прикосновения, перемещенные для последних прикосновений. Закруглено (IE касается вниз, перемещает палец, поднимает, если вы сделаете это достаточно быстро на iPhone, вы не получите промежуточное событие для касаний, проведенных пальцем, где, как на андроиде, вы делаете).
эквивалент Android / iPhone
- ACTION_UP =touchesEnded
- ACTION_DOWN = touchesBegan
- ACTION_MOVE = touchesMoved
Также я заметил, что на Android есть некоторые функции истории точек.Я не использовал их.Я сохранил штрихи и метки времени в своем собственном массиве.