我在这里遇到了一个真正的问题,自过去几个小时以来我一直在拼命想弄清楚。哪儿也去不了...
在编写一个需要处理两个手指在屏幕上的确切位置的应用程序时,我遇到了一个意想不到的行为(对我来说)。经过一些调试,我发现当我将一根手指保持在屏幕上的静态位置,同时用另一根手指在同一屏幕上滑动时,不仅会改变移动手指的坐标,还会改变静态手指的坐标!(虽然不是在现实生活中:D)
这是仅 y 坐标的示例日志输出。
y(0) 是握在屏幕底部的静态手指,
y(1) 从上到下移动。
有趣的是,在我到达屏幕底部之前,y(1) 达到了最大值 480。
有人可以向我解释这种行为吗?
这是我用来生成日志的代码,也许我犯了一个愚蠢的错误......
编辑:在“htc 愿望”上进行了测试。
@Override
public boolean onTouchEvent( MotionEvent e ) {
String s = "";
for ( int i = 0; i < e.getPointerCount(); i++ ) {
s += "y(" + i + ")=" + (int)e.getY( i ) + " ";
}
Log.d( "some tag", s );
return true;
}
- 09-11 17:57:09.257: D/TouchHandler(14932): y(0)=480
- 09-11 17:57:09.267: D/TouchHandler(14932): y(0)=480 y(1)=5
- 09-11 17:57:09.287: D/TouchHandler(14932): y(0)=480 y(1)=10
- 09-11 17:57:09.327: D/TouchHandler(14932): y(0)=480 y(1)=30
- 09-11 17:57:09.367: D/TouchHandler(14932): y(0)=480 y(1)=70
- 09-11 17:57:09.427: D/TouchHandler(14932): y(0)=480 y(1)=121
- 09-11 17:57:09.528: D/TouchHandler(14932): y(0)=480 y(1)=206
- 09-11 17:57:09.608: D/TouchHandler(14932): y(0)=480 y(1)=271
- 09-11 17:57:09.618: D/TouchHandler(14932): y(0)=480 y(1)=281
- 09-11 17:57:09.628: D/TouchHandler(14932): y(0)=447 y(1)=293
- 09-11 17:57:09.638: D/TouchHandler(14932): y(0)=447 y(1)=304
- 09-11 17:57:09.658: D/TouchHandler(14932): y(0)=428 y(1)=311
- 09-11 17:57:09.668: D/TouchHandler(14932): y(0)=419 y(1)=317
- 09-11 17:57:09.678: D/TouchHandler(14932): y(0)=415 y(1)=325
- 09-11 17:57:09.688: D/TouchHandler(14932): y(0)=413 y(1)=333
- 09-11 17:57:09.698: D/TouchHandler(14932): y(0)=411 y(1)=351
- 09-11 17:57:09.708: D/TouchHandler(14932): y(0)=411 y(1)=363
- 09-11 17:57:09.718: D/TouchHandler(14932): y(0)=411 y(1)=373
- 09-11 17:57:09.728: D/TouchHandler(14932): y(0)=411 y(1)=383
- 09-11 17:57:09.748: D/TouchHandler(14932): y(0)=480 y(1)=480
- 09-11 17:57:09.758: D/TouchHandler(14932): y(0)=459 y(1)=438
- 09-11 17:57:09.768: D/TouchHandler(14932): y(0)=459 y(1)=432
- 09-11 17:57:09.778: D/TouchHandler(14932): y(0)=445 y(1)=431
- 09-11 17:57:09.788: D/TouchHandler(14932): y(0)=439 y(1)=432
- 09-11 17:57:09.798: D/TouchHandler(14932): y(0)=437 y(1)=436
- 09-11 17:57:09.818: D/TouchHandler(14932): y(0)=439 y(1)=441
- 09-11 17:57:09.828: D/TouchHandler(14932): y(0)=443 y(1)=447
- 09-11 17:57:09.838: D/TouchHandler(14932): y(0)=450 y(1)=456
- 09-11 17:57:09.838: D/TouchHandler(14932): y(0)=459 y(1)=467
- 09-11 17:57:09.858: D/TouchHandler(14932): y(0)=469 y(1)=480
- 09-11 17:57:09.868: D/TouchHandler(14932): y(0)=476 y(1)=480
- 09-11 17:57:09.878: D/TouchHandler(14932): y(0)=479 y(1)=480
- 09-11 17:57:09.888: D/TouchHandler(14932): y(0)=480 y(1)=480