Отрегулируйте частоту дискретизации сенсорного ввода на 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;
}
}
Вы должны объявить длинную переменную downTime и eventTime в вашем классе. Также единица их мс. Надеюсь, это поможет вам.
2011/7/20 Может быть, вы можете попробовать:
Tread.sleep(time);
Посмотрите, поможет ли это.