Trying to achieve freehand cropping of an image, so I\'m able to draw on the image. But it goes outside bitmap region. I just wanna restrict that user can only draw inside bitma
late answer but use full for other u can override onmeasure method and set your image bitmap width and height in that method and resize your canvas so now you can draw only in your canvas.so your image come center.it for drawpath only on your bitmap.
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
height = bitmap.getHeight();
width = bitmap.getWidth();
setMeasuredDimension(width,height);
}
and then change in your oncrop method so you can slove it esaly.
Bitmap resultingImage = Bitmap.createBitmap(yourbitmap.getwidth(),yourbitmap.getheight(), yourbitmap.getConfig());
There is one way to achieve your goal..
Follow below steps:
1) Make one image like as inside part of crop image should be transparent and outside part should be background of canvas check below Image.
2) Draw that image on top of your canvas.
3) Draw anything on your canvas and drawagain that image on top of the canvas.
Image:
You can ignore all Touch Events that are outside your image view. Remember the last event location that is inside your image view and connect it with the next event location that is inside the view. This should work when both events are part of a single movement (without lifting your finger), but it might be more complicated when the drawing is done outside your view and then a new drawing starts inside. Try to cover this case too.