如何设置SurfaceView背景透明

时间:2014-03-12 16:37:09

标签: android graphics surfaceview

我正在使用SurfaceView画一个这样的圆圈:

        Canvas canvas = holder.lockCanvas();
        canvas.drawColor(android.R.color.holo_blue_bright);
        Paint paint = new Paint();
        paint.setStrokeWidth(0);
                paint.setARGB(255,255,138,253);
        canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight() / 2, (float) (lastAmp/ 1.2), paint);
            holder.unlockCanvasAndPost(canvas);

enter image description here

所以灰色backdround实际上是保存SurfacrView的线性布局的一部分。 粉色圆圈是我画的部分,黑色部分是我想要摆脱的部分,我希望它是透明的,并且看到下面的灰色背景。

1 个答案:

答案 0 :(得分:2)

如果要清除SurfaceView的一部分,可以将此模式设置为画家:

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

然后你可以用它来绘制你想要的任何形状以获得效果。这基本上意味着,"透明地绘制"。