Android Transparent Canvas (surfaceview)
Solution 1:
In the constructor:
setZOrderOnTop(true);
After holder.addCallback(this)
:
holder.setFormat(PixelFormat.TRANSPARENT);
At the beginning of drawing:
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
Solution 2:
I copied the solution from the same question: how to make surfaceview transparent and got it to work with a setup similar to yours.
The critical piece for me was the 'setZOrderOnTop(true)' setting, which I foolishly ignored on the first pass. I put that in the constructor, and set my pixel format to RGBA_8888 inside surfaceCreated.
At this point, the background from the top-level layout was visible.
Solution 3:
Try this:
getHolder().setFormat(PixelFormat.TRANSLUCENT);
Solution 4:
After searching with keyword surfaceview instead of canvas iI found out that it isn't possible. For more information see: how to make surfaceview transparent
Because the background of the canvas is static I've gave it the exact same background. Now it looks like it is transparent :)
Bitmap bg = BitmapFactory.decodeResource(getResources(), R.drawable.background_panel_800_480);
canvas.drawBitmap(bg, 0, 0, null);
Post a Comment for "Android Transparent Canvas (surfaceview)"