Mic*_*h91 1 android gridview coordinates touch-event
我有一个显示一些图像的gridview.我已经实现了一个ViewFlipper来导航gridviews页面,我的问题是我现在不能使用onItemClickListener.
我正在尝试使用onSingleTapConfirmed.
这是MyGestureDetector类:
class MyGestureDetector extends SimpleOnGestureListener {
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
System.out.println(" in onFling() :: ");
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
vf.setInAnimation(inFromRightAnimation());
vf.setOutAnimation(outToLeftAnimation());
vf.showNext();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
vf.setInAnimation(inFromLeftAnimation());
vf.setOutAnimation(outToRightAnimation());
vf.showPrevious();
}
return super.onFling(e1, e2, velocityX, velocityY);
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// TODO Auto-generated method stub
Log.e("Item Click","Item Click");
return super.onSingleTapConfirmed(e);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在需要做的是捕获使用x和y坐标(e.getX()和e.getY())点击gridview的哪个项目.
有人在这里回答/sf/answers/449345641/,使用pointToPosition方法应该可行,但我不知道如何实现.
谢谢,抱歉我的英语.
我终于使用onSingleTapConfirmed中的gridview pointtoposition()方法做到了这一点.
if (myGridView.pointToPosition((int)e.getX(), (int)e.getY())!=-1) {
myItem = myAdapter.getItem(myGridView.pointToPosition((int)e.getX(), (int)e.getY()));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4755 次 |
| 最近记录: |