如何获取ImageView的4个坐标?

时间:2012-09-25 15:34:03

标签: android android-layout

我想实现这个方法:

//#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个坐标?

感谢所有人!!!

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:0)

尝试

getLocationOnScreen() 

和/或

getLocationInWindow()
在你的imageView上