Отрегулируйте частоту дискретизации сенсорного ввода на 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);

Посмотрите, поможет ли это.

Другие вопросы по тегам