0

我想实现这个方法:

//#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 个角,我需要知道 4 个坐标 (x,y) 才能进行检查。左上角与左下角具有相同的 X 坐标,右上角与右下角具有相同的 X 坐标。对于 Y 坐标是相似的。我的问题是:如何获得 ImageView 的 4 个坐标?

谢谢大家!!!

4

2 回答 2

2

只是一个小问题:为什么不将 ImageView 本身设置为触摸侦听器?如果这不是一个选项,请尝试:

int pos[] = new int[2];
yourImageView.getLocationOnScreen(pos);

调用此方法后,数组将包含视图的左上角坐标。要获取其他坐标,只需使用视图的高度和宽度:

yourImageView.getWidth();
yourImageView.getHeight();

确保仅在视图在屏幕上绘制之后才调用这三个方法 - (在 onCreate 中调用它们将返回 0 到所有值)。

于 2012-09-25T15:54:43.543 回答
0

尝试

getLocationOnScreen() 

和/或

getLocationInWindow()

在你的 imageView 上。

于 2012-09-25T15:39:07.350 回答