Просто быстрый вопрос для подтверждения документации:
Функция getY (int) из MotionEvent в Android смущает меня своей документацией:
Возвращает координату Y этого события для данного индекса указателя (используйте getPointerId (int), чтобы найти идентификатор указателя для этого индекса).Целые числа являются пикселями;значение может иметь дробь для устройств ввода с точностью до субпикселя.
При этом я подумал, что код должен быть написан так:
for(int i = 0; i < event.getPointerCount(); ++i) {
// Some code...
int currentPointer = event.getPointerId(i);
float currentY = event.getY(currentPointer);
Log.i("test", "Pointer " + currentPointer + " has Y-coord of " + currentY);
// Some more code ...
}
Однако втестирование на моем Samsung Galaxy Tab показало, что я не должен передавать currentPointer в getY, а просто 'i', вот так:
for(int i = 0; i < event.getPointerCount(); ++i) {
// Some code...
int currentPointer = event.getPointerId(i);
float currentY = event.getY(i);
Log.i("test", "Pointer " + currentPointer + " has Y-coord of " + currentY);
// Some more code ...
}
Это правильный способ использования функций getPointerId и getY?Вы даете им обеим одну и ту же переменную 'i', а не их фактические идентификаторы указателей?
Я спрашиваю, потому что хочу убедиться, что это не отличается на моем устройстве, и это действительно способ, которым он предназначен для работы.Спасибо.