0

当使用 GestureDetector 在屏幕上捕捉手势时,我对 android 的屏幕 XY 坐标感到困惑。例如:

class TouchPadGL extends GestureDetector.SimpleOnGestureListener {
    public boolean onScroll(MotionEvent e1, MotionEvent e2,
                            float distanceX, float distanceY) {
        Log.i("onScroll",String.format("dsX: %s, dsY: %s",distanceX,distanceY));
    }
    public boolean onFling(MotionEvent e1, MotionEvent e2, 
                           float velocityX, float velocityY) {
        Log.i("onFling",String.format("vX: %s, vY: %s",velocityX,velocityY));
    }
}

根据上述 onScroll 方法的输出,点 (0,0) 似乎在视图的右下角,X 轴向左伸展,Y 轴向上伸展。但是当检查onFling方法的输出时,你会发现它似乎是(0,0)在左上角,X轴向右伸展,Y轴向下伸展。为什么会这样?

是android api中的错误还是我弄错了?

顺便说一句,代码在 API 2.1 上运行

4

1 回答 1

0

文档说:

distanceX 自上次调用 onScroll 以来沿 X 轴滚动的距离。这不是 e1 和 e2 之间的距离。

distanceY 自上次调用 onScroll 以来沿 Y 轴滚动的距离。这不是 e1 和 e2 之间的距离。

于 2010-12-16T08:55:10.700 回答