Android随手指移动的DragView(一)——获取偏移量

想要DragView随着手指移动首先得获取偏移量,获取偏移量一般有2种思路。

(1),通过event.getX()。

    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        int x = (int) event.getX();
        int y = (int) event.getY();
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                mLastX = x;
                mLastY = y;
                break;
            case MotionEvent.ACTION_MOVE:
                int offsetX = x - mLastX;
                int offsetY = y - mLastY;

                //TODO在这里处理其他逻辑

                break;
            case MotionEvent.ACTION_UP:
                break;
        }
        //注意这里得返回true,或者给DragView加上android:clickable=true。
        return true;
    }

(2),通过event.getRawX()。

     @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        int rawX = (int) event.getRawX();
        int rawY = (int) event.getRawY();
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                mLastRawX = rawX;
                mLastRawY = rawY;
                break;
            case MotionEvent.ACTION_MOVE:
                int offsetX = rawX - mLastRawX;
                int offsetY = rawY - mLastRawY;

                //TODO在这里处理其他逻辑

                //与第一种方法的不同之处    
                mLastRawX= rawX;
                mLastRawY= rawY;
                break;
            case MotionEvent.ACTION_UP:
                break;
        }
        return true;
    }

你可能感兴趣的:(Android笔记)