在透明SurfaceView上绘制

时间:2014-12-16 14:28:17

标签: java android surfaceview transparent

我有以下问题:我创建了一个从SurfaceView扩展的类,它还实现了SurfaceHolder.Callback,但是当我尝试绘制一个红色方块时,它总是黑色的。在我的代码下面:

首先,我在构造函数中调用以下方法:

 private void initTransparentBackgroundColor(){
        this.setBackgroundColor(Color.TRANSPARENT);
        this.setZOrderOnTop(true);
        getHolder().setFormat(PixelFormat.TRANSPARENT);
 }

然后,我开始画画:

 protected void onDraw(Canvas canvas){
        Paint p = new Paint();
        p.setColor(Color.RED);
        p.setStyle(Paint.Style.FILL_AND_STROKE);
        canvas.drawRect(10,10,20,20,p);
}

我做错了什么?

1 个答案:

答案 0 :(得分:2)

替换

getHolder().setFormat(PixelFormat.TRANSPARENT);

到此

getHolder().setFormat(PixelFormat.TRANSLUCENT);
祝你好运。 :)