GridView获取带有x和y坐标的项目

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方法应该可行,但我不知道如何实现.

谢谢,抱歉我的英语.

Mic*_*h91 5

我终于使用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)