我有一个图像视图,我为我的游戏画了我的游戏板。我需要相对于图像视图获取触摸的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;
}
});
答案 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