I am using Android Drag&Drop API and am trying to set the anchor of the drag shadow to the point where the touch was made in the `View`. The dafault behavior is to have the anchor the middle of the `View`.

I did some research and it seems this can be done by overriding the [`onProvideShadowMetrics (Point shadowSize, Point shadowTouchPoint)`](http://developer.android.com/reference/android/view/View.DragShadowBuilder.html#onProvideShadowMetrics%28android.graphics.Point,%20android.graphics.Point%29) method in the `DragShadowBuilder` class. From what I understood, if I change the x,y coordinates of `shadowTouchPoint` it should modify the coordinates of the drag anchor.

What I did was to extend the `DragShadowBuilder` class like so:

```
class EventDragShadowBuilder extends DragShadowBuilder {

    int touchPointXCoord, touchPointYCoord;

    public EventDragShadowBuilder() {
        super();
    }

    public EventDragShadowBuilder(View view, int touchPointXCoord,
            int touchPointYCoord) {

        super(view);
        this.touchPointXCoord = touchPointXCoord;
        this.touchPointYCoord = touchPointYCoord;
    }

    @Override
    public void onProvideShadowMetrics(Point shadowSize,
            Point shadowTouchPoint) {

        shadowTouchPoint.set(touchPointXCoord, touchPointYCoord);

        super.onProvideShadowMetrics(shadowSize, shadowTouchPoint);
    }
}

```

In the `Fragment` where I use drag&drop I created two listeners to start a drag event for a `View`:

```
mEventLongClickListener = new OnLongClickListener() {

    @Override
    public boolean onLongClick(View view) {

        EventDragShadowBuilder shadowBuilder = new EventDragShadowBuilder(
            view, mEventTouchXCoord, mEventTouchYCoord);

        view.startDrag(null, shadowBuilder, view, 0);

        return true;
    }
};

// We need this listener in order to get the corect coordinates for the
// drag shadow
mEventTouchListener = new OnTouchListener() {

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

        final int action = event.getAction();

        switch (action & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN: {
            mEventTouchXCoord = (int) event.getX();
            mEventTouchYCoord = (int) event.getY();
            break;
        }
        }
        return false;
    }
};

```

And I set the tow listeners:

```
itemView.setOnLongClickListener(mEventLongClickListener);
itemView.setOnTouchListener(mEventTouchListener);

```

Everything ok up to here. But when I test the app and start the drag process, the drag shadow is centered under the touch point. So it uses the default behavior. I tried debugging and I see that `mEventTouchXCoord` and `mEventTouchYCoord` are set correctly. The method `shadowTouchPoint.set(touchPointXCoord, touchPointYCoord);` gets the correct coordinates but still it centers the shadow. 

I don't know what I'm doing wrong. Maybe I misunderstood the API. Any help with or hint would be much appreciated.