I would like to make Canvas area transparent because I would like to add an Image behind it so that Canvas actions happen above the image.My code for the canvas is here
If you want to have a canvas with a transparent background you have to configure the background image for the
mCanvas = new Canvas(mBackgroundBitmap);
with Bitmap.Config.ARGB_4444
And use colors like 0x00000000 as transparent
Bitmap mBackgroundImage = Bitmap.createBitmap(Size, Size,
Bitmap.Config.ARGB_4444);
mCanvas = new Canvas(mBackgroundImage);
hope this helps! I have a pretty transparent canvas :D yay!
I got the output by this
public Panel(Context context, AttributeSet attrs) {
super(context, attrs);
this.setBackgroundColor(Color.TRANSPARENT);
this.setZOrderOnTop(true); //necessary
getHolder().setFormat(PixelFormat.TRANSPARENT);
getHolder().addCallback(this);
mThread = new ViewThread(this);
}
canvas.drawColor(Color.argb(0, 255, 255, 255));
first attribute is alpha and rest are RGB colors.
or
canvas.drawColor(Color.TRANSPARENT);
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)
Works fine for me with
override fun onFinishInflate() {
super.onFinishInflate()
setZOrderOnTop(true)
holder.setFormat(PixelFormat.TRANSLUCENT)
isFocusable = true
holder.addCallback(surfaceCallback)
}
this make canvas tramsparent and it is work for me :)
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.OVERLAY);
Set canvas's view background color to #00000000