只是一个简短的问题来确认文档:
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/