Freehand Image Crop draw inside bitmap region

前端 未结 3 1957
面向向阳花
面向向阳花 2021-02-06 02:54

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

相关标签:
3条回答
  • 2021-02-06 03:32

    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());
    
    0 讨论(0)
  • 2021-02-06 03:41

    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:

    enter image description here

    0 讨论(0)
  • 2021-02-06 03:44

    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.

    0 讨论(0)
提交回复
热议问题