Настройка частоты дискретизации сенсорного ввода на Android
На Android есть ли способ регулировки частоты дискретизации сенсорного ввода?
2 ответа:
Вы не можете остановить систему, генерирующую эти события, однако вы можете выборочно игнорировать некоторые из событий
ACTION_MOVE
, поскольку вы увидите до 60 в секунду, каждое из которых сообщает одни и те же координаты.Вы можете обрабатывать только эти события
ACTION_MOVE
через заданное время с момента последнего события, или перейти к каждому 5-му или 10-му событию и т. д. Вам придется поэкспериментировать и посмотреть, что для вас лучше всего работает.Просто убедитесь, что вы не пропускаете
ACTION_UP
, иначе ваше приложение может попасть в перепутанное состояние с прикосновений.
Я предполагаю, что вы пытаетесь отрегулировать скорость, как вы имеете дело с функцией onTouch.
public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()){ case MotionEvent.ACTION_DOWN: downTime = event.getDownTime(); // Do something you want to. break; case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_UP: eventTime = event.getEventTime(); if(eventTime - downTime > 25){ // Do something you want to. } break; } }
Вы должны объявить переменную длительного простоя и eventTime в своем классе. Также единицей их является МС. Надеюсь, это вам поможет.
2011/7/20 Может быть, вы можете попробовать:
Tread.sleep(time);
Посмотреть, если это помогает.