Android Mask bitmap on canvas gen a black space

前端 未结 4 1793
滥情空心
滥情空心 2020-11-28 23:16

I have a mask bitmap with a half is red color and ones is transparent like this https://www.dropbox.com/s/931ixef6myzusi0/s_2.png

I want to use mask bitmap to draw c

4条回答
  •  天涯浪人
    2020-11-28 23:28

    Bitmap finalMasking = stackMaskingProcess(imageBitmap, bitmapMasking);
    
    
    private Bitmap stackMaskingProcess(Bitmap _originalBitmap, Bitmap _maskingBitmap) {
            try {
                if (_originalBitmap != null)
                {
                    int intWidth = _originalBitmap.getWidth();
                    int intHeight = _originalBitmap.getHeight();
                    resultMaskBitmap = Bitmap.createBitmap(intWidth, intHeight, Bitmap.Config.ARGB_8888);
                    getMaskBitmap = Bitmap.createScaledBitmap(_maskingBitmap, intWidth, intHeight, true);
                    Canvas mCanvas = new Canvas(resultMaskBitmap);
                    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
                    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
                    mCanvas.drawBitmap(_originalBitmap, 0, 0, null);
                    mCanvas.drawBitmap(getMaskBitmap, 0, 0, paint);
                    paint.setXfermode(null);
                    paint.setStyle(Paint.Style.STROKE);
                }
            } catch (OutOfMemoryError o) {
                o.printStackTrace();
            }
            return resultMaskBitmap;
        }
    

提交回复
热议问题