Android MotionEvent getY (int): Какой вызов является правильным способом? - PullRequest
1 голос
/ 27 октября 2011

Просто быстрый вопрос для подтверждения документации:

Функция 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', а не их фактические идентификаторы указателей?

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

1 Ответ

1 голос
/ 27 октября 2011

Да, это правильно, вы должны указывать только "i".

Все методы getPointer * (int) имеют тот же индекс, что и параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...