Skip to content Skip to sidebar Skip to footer

Android- How To Drag A Picture On A Canvas

I need to drag an image like in a videogame. I have a few lines drawed and I need to drag it and see the lines drawed before 'out' of the window. I give you two images trying to he

Solution 1:

Check out Canvas.translate

It will "move" everything you draw afterwards the ammount you say in x and y axis.

Don't forget to save and restore it, like:

canvas.save();
canvas.translate(ammountX, ammountY);
// [draw your stuff here]
canvas.restore();

If your question is more towards how to detect the dragging effect, you have to Override your view's onTouchEvent method. Something like:

@Override
public boolean onTouchEvent (MotionEvent event){
    if(event.getActionMasked() == MotionEvent.DOWN){
        startX = event.getX();
        startY = event.getY();
        return true;
    }else if(event.getActionMasked() == MotionEvent.MOVE){
        ammountX = event.getX() - startX;
        ammountY = event.getY() - startY;
        return true;
    }
    return super.onTouchEvent(event);
}

Post a Comment for "Android- How To Drag A Picture On A Canvas"