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

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 ...
}


但是,在我的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”变量,却不给它们实际的指针ID?

我之所以问是因为我想确保这在我的设备上没有什么不同,并且这确实是它打算工作的方式。谢谢。

最佳答案

是的,这是正确的,您应该仅指定“ i”。

所有的getPointer *(int)方法都将相同的索引作为参数。

关于android - Android MotionEvent getY(int):哪个调用是正确的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7913533/

10-10 22:42