如何获得在Android的触摸位置?

我需要在android中获取触摸开始位置(X,Y),触摸移动位置和触摸屏幕的结束位置。


@Override
public boolean onTouchEvent(MotionEvent event) {
    int x = (int)event.getX();
    int y = (int)event.getY();
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
        case MotionEvent.ACTION_MOVE:
        case MotionEvent.ACTION_UP:
    }
return false;
}

这三种情况可以让你对不同类型的事件作出反应,在这个例子中,轻敲或拖动或再次举起手指。


@Override
    public boolean onTouch(View v, MotionEvent event) {
       float x = event.getX();
       float y = event.getY();
       return true;
    }

补充答案

给定一个OnTouchListener

private View.OnTouchListener handleTouch = new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {

        int x = (int) event.getX();
        int y = (int) event.getY();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                Log.i("TAG", "touched down");
                break;
            case MotionEvent.ACTION_MOVE:
                Log.i("TAG", "moving: (" + x + ", " + y + ")");
                break;
            case MotionEvent.ACTION_UP:
                Log.i("TAG", "touched up");
                break;
        }

        return true;
    }
};

设置一些观点:

myView.setOnTouchListener(handleTouch);

这会为您提供触摸事件坐标相对于触摸侦听器分配给它的视图。 视图的左上角是(0, 0) 。 如果您将手指放在视图上方,则y将为负值。 如果将手指移动到视图左侧,则x将为负值。

int x = (int)event.getX();
int y = (int)event.getY();

如果您需要相对于设备屏幕左上角的坐标,请使用原始值。

int x = (int)event.getRawX();
int y = (int)event.getRawY();

有关

  • Android触控事件如何传递?
  • 链接地址: http://www.djcxy.com/p/91211.html

    上一篇: How to get the Touch position in android?

    下一篇: API or method to convert gesture to text in android