我想实现这个方法:
//#OnTouchEvent()
public boolean onTouchEvent(MotionEvent event) {
//Coordinates of the touch
int x = (int) event.getX();
int y = (int) event.getY();
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Check if the touch is within the coordinates of an image
if x isBetweenCoordinatesXofTheImage
if y isBetweenCoordinatesYofTheImage
//DoSomething
else
//DoNothing
break;
case MotionEvent.ACTION_MOVE:
//nothing
break;
case MotionEvent.ACTION_UP:
//check if the touch is within the coordinates of an image;
if x is betweenCoordinatesX of the image
y is betweenCoordinatesYofTheImage
//DoSomething
else
//DoNothing
break;
}
return true;
}
ImageView有4个coorners,我需要知道4坐标(x,y)才能进行检查。 左上角与左下角具有相同的X坐标,右上角与右下角具有相同的X坐标。对于Y坐标是类似的。 我的问题是:如何获得ImageView的4个坐标?
感谢所有人!!!
答案 0 :(得分:2)
一个小问题: 为什么不将ImageView本身设置为触控侦听器? 如果那不是一个选项,那么试试:
int pos[] = new int[2];
yourImageView.getLocationOnScreen(pos);
在您调用此方法后,数组将包含视图的左上角坐标。 要获取其他坐标,只需使用视图的高度和宽度:
yourImageView.getWidth();
yourImageView.getHeight();
确保仅在屏幕上绘制视图后调用这三个方法 - (在onCreate中调用它们将返回0到所有值)。
答案 1 :(得分:0)
尝试
getLocationOnScreen()
和/或
getLocationInWindow()
在你的imageView上。