Comment déplacer en douceur une image avec un doigt d'utilisateur sur l'émulateur Android

Chaque chose est bien dans la première fois quand je bouge ImageView sur l'écran, mais dans deuxième temps ImageView ne pas se déplacer correctement.

C'est ce que j'ai fait jusqu'à présent.

img.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        //TODO Auto-generated method stub
        int eid = event.getAction();
        switch (eid) {
            case MotionEvent.ACTION_MOVE:
                FrameLayout.LayoutParams mParams = (FrameLayout.LayoutParams) img.getLayoutParams();
                int x = (int) event.getRawX();
                int y = (int) event.getRawY();
                mParams.leftMargin = x-50;
                mParams.topMargin = y-50; 
                img.setLayoutParams(mParams);
                break;
            case MotionEvent.ACTION_DOWN:
                x1=img.getX();
                y1=img.getY(); 
                break;                         
            case MotionEvent.ACTION_UP:
                img.setX(x1);
                img.setY(y1);                          
                break; 
            default:
                break;
            }
        return true;
    }
});

source d'informationauteur user2380151