在图像视图中检测触摸

时间:2012-01-11 21:34:17

标签: android android-imageview touch-event

我有一个图像视图,我为我的游戏画了我的游戏板。我需要相对于图像视图获取触摸的X,Y。例如:如果有人触摸了最左上方的Pixel,它将返回(0,0)或者说游戏板是100,100板,我在中间触摸我会得到(50,50)...如何会这样做吗?

 gameView.setOnTouchListener(new OnTouchListener(){

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_DOWN){
            int x = (int) event.getX() / pieceSize;
            int y = (int) event.getY() / pieceSize;
            Log.d("Touch Event", "Touch event at "+ x + " " +y);

            doMove(x, y);

            Log.d("Move", "The move was " + doMove(x,y));
            }
            gameView.setImageBitmap(Draw(pieceSize));

            return true;
        }

    });

3 个答案:

答案 0 :(得分:5)

您可以使用

onTouch(View v, MotionEvent event)

将触摸事件分派到视图时调用。

从事件对象中检索x和y。

当然,通过在您正在处理的视图上设置OnTouchListener。

答案 1 :(得分:0)

如果你在ImageView上放置了一个触控侦听器,那么event.getX()和event.getY()应该返回相对于ImageView的值。

答案 2 :(得分:0)

您应该设置OnTouchListener和getX以及事件的getY。关于这一个的答案很多。例如,这里是:Get the co-ordinates of a touch event on Android