2014-01-14 6 views
1

При использовании Android VelocityTracker для отслеживания MotionEvents необходимо ли учитывать плотность экрана, чтобы вернуть «независимую от плотности скорость»?Velocity Tracker, учитывающий плотность пикселей экрана

velocityTracker.computeCurrentVelocity(1); // pixels per milliseconds 
float velocityY = velocityTracker.getYVelocity(); 

ли я кратному это velocityY с коэффициентом масштабирования экрана, так что я могу отслеживать ту же физическую скорость жест во всех устройствах?

ответ

2

Для большинства применений, которые у вас могут возникнуть, вам не нужно беспокоиться об этом.

Давайте рассмотрим случай прокрутки пользовательского вида: если пользователь перемещает свой палец 1 см, он может быть 100px или 400px в зависимости от плотности экрана. Во всяком случае, то, что вы хотите переместить, - это перемещение чертежа с таким же количеством пикселей, без масштабирования.

Одним из исключений может быть, если вы пишете игру и расстояние, которое пользователь тащит за свой палец, означает силу, которую они собираются использовать для выполнения какого-либо действия. В этом случае, вероятно, было бы справедливо корректировать плотность экрана.

Подведение итогов: если вы хотите обновить интерфейс, вам не нужно беспокоиться об этом. Если то, что вы хотите сделать с этой скоростью, не зависит от экрана, вы, вероятно, захотите его отрегулировать.

+0

Это отличный ответ. Я работаю над тем, что должно иметь схожую скорость на любом устройстве, поэтому я настроюсь на плотность экрана. Спасибо. – mdupls