如何将GestureDetector与onItemLongClick集成?
我有一个包含三个图像的GridView。当我触摸第一张图像时,我想显示一个Toast消息。当我从屏幕上抬起手指时,我想显示第二个Toast消息。
我知道GestureDetector使用MotionEvent,但onItemLongClick没有。但在这种情况下,我需要在网格中跟踪图像的位置ID,因此无法在onTouch()内部实现?
答案 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的整个示例文件中还有一些用途。