Насколько хорошо поддерживается чувствительность к давлению на устройствах Android?

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

Функции MotionEvent.getSize() и MotionEvent.getPressure() кажутся именно тем, что я хочу, но не упоминают ничего о своей точности или значениях их значений возврата. Являются ли возвращаемые значения из этого метода достаточно точными на большинстве устройств Android для моих нужд?

Мне любопытно, почему нет популярных приложений для Android, которые используют чувствительность к давлению. Я нашел очень мало статей, в которых упоминаются эти методы, и они встречаются только с сообщениями, в которых обсуждаются ошибки устройства: http://groups.google.com/group/android-porting/browse_thread/thread/7e8b1bb77dc7d82d

Ответ 1

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

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

Ответ 2

Вы найдете полезную информацию здесь в проекте под названием Markers. Давление обнаружилось как-то в емкостных экранах после Eclair.