2012-01-11 124 views
3

我有一个图像视图,我在我的游戏中绘制了我的游戏板。我需要获取触摸相对于图像视图的X,Y.例如:如果有人碰到最左上角的像素,它会返回(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; 
     } 

    }); 

回答

5

您可以使用

onTouch(View v, MotionEvent event) 

当触摸事件被分配到一个视图调用。

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

当然,通过对您正在使用的视图设置的OnTouchListener。

0

如果您已将触摸侦听器放到ImageView上,则event.getX()和event.getY()应该返回与ImageView相关的值。