How Can I Make The Background Of My Custom Brush Transparent?
Solution 1:
The reason it happens is because Paint doesn't have an alpha composing mode set by default. Thus, when you're trying to paint a bitmap over your canvas it will replace the destination pixels with your brush pixels, which in your case is #00000000. And that will result in pixel being displayed as black. Have a look into this documentation: https://developer.android.com/reference/android/graphics/PorterDuff.Mode
By the first glance it seems you're looking for PorterDuff.Mode.SRC_OVER
or PorterDuff.Mode.SRC_ATOP
- this way transparent pixels from your source image (your brush) will not over-draw the pixels from your destination (canvas). In case your background is always non-transparent, you will see no difference between SRC_OVER
and SRC_ATOP
, but if it isn't - choose the one which fits your needs. Then you can modify setupPathAndPaint
method by adding this line to its end:
mDrawPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
Post a Comment for "How Can I Make The Background Of My Custom Brush Transparent?"