Android MotionEvent getY(int):哪种调用是正确的方法?

时间:2011-10-27 08:43:03

标签: android events

确认文档只是一个简单的问题:

Android中的getY(int) function from MotionEvent让我对其文档感到困惑:

  

返回给定指针索引的此事件的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 ...
}

然而,在我的三星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'变量,而不是他们的实际指针id?

我在问,因为我想确保在我的设备上这没有什么不同,这确实是它的工作方式。感谢。

1 个答案:

答案 0 :(得分:1)

是的,没错,你应该只指定“我”。

所有getPointer *(int)方法都使用与参数相同的索引。