在WVGA800上的画布上获得错误的坐标

时间:2011-11-05 13:49:14

标签: android

@Override
    public boolean onTouchEvent(MotionEvent event) {

        X = (int) event.getX();
        Y = (int) event.getY();

        switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:

            Toast.makeText(context, X + "-" +Y,
                    Toast.LENGTH_LONG).show();
            break;
        }

        return true;
    }

我正在尝试使用此代码来获取WVGA800上画布的x和y坐标, Android 2.1版

但我没有得到屏幕的确切坐标。

2 个答案:

答案 0 :(得分:2)

您想获取屏幕的坐标吗?您的代码实际上是获取相对于视图/画布的坐标(由事件报告)。如果屏幕坐标是您想要的,请尝试使用View.getLocationOnScreen根据视图坐标计算它。

X = (int) event.getX();
Y = (int) event.getY();
int[] position = new int[2];
position[0] = X;
position[1] = Y;
this.getLocationOnScreen(position);

答案 1 :(得分:0)

试试这个:

 switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN:
        X = (int) event.getX();
        Y = (int) event.getY();

        Toast.makeText(context, X + "-" +Y,
                Toast.LENGTH_LONG).show();
        break;
    }

    return true;
}

您将获得您触及的位置的坐标。