使用onItemLongclick的GestureDetector

时间:2011-10-11 03:41:55

标签: android android-layout

如何将GestureDetector与onItemLongClick集成?

我有一个包含三个图像的GridView。当我触摸第一张图像时,我想显示一个Toast消息。当我从屏幕上抬起手指时,我想显示第二个Toast消息。

我知道GestureDetector使用MotionEvent,但onItemLongClick没有。但在这种情况下,我需要在网格中跟踪图像的位置ID,因此无法在onTouch()内部实现?

1 个答案:

答案 0 :(得分:0)

您可以使用此类跟踪光标的运动,无论是屏幕触摸还是TrackBall移动,如果它跨越到下一张图片,您可以处理该事件。以下是从sdk示例中获取的示例:

    @Override public boolean onTouchEvent(MotionEvent event) {
        int action = event.getActionMasked();
        if (action != MotionEvent.ACTION_UP && action != MotionEvent.ACTION_CANCEL) {
            int N = event.getHistorySize();
            int P = event.getPointerCount();
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < P; j++) {
                    mCurX = event.getHistoricalX(j, i);
                    mCurY = event.getHistoricalY(j, i);
                    drawPoint(mCurX, mCurY,
                            event.getHistoricalPressure(j, i),
                            event.getHistoricalTouchMajor(j, i));
                }
            }
            for (int j = 0; j < P; j++) {
                mCurX = event.getX(j);
                mCurY = event.getY(j);
                drawPoint(mCurX, mCurY, event.getPressure(j), event.getTouchMajor(j));
            }
        }
        return true;
    }

您可以在C:\ YourInstallDir \ android-sdk \ samples \ android-10 \ ApiDemos \ src \ com \ example \ android \ apis \ graphics \ TouchPaint.java中阅读更多内容并在SDK中查看该文件,或者只是搜索MotionEvent的整个示例文件中还有一些用途。