SurfaceView使用canvas来画图时设置背景透明

来源:互联网 发布:电话号码收集软件 编辑:程序博客网 时间:2024/04/30 13:24

//sfvSurfaceView为我自己定义的一个SurfaceView

sfvSurfaceView = (SurfaceView)this.findViewById(R.id.surfaceViewSpectrum);

sfvSurfaceView.setZOrderOnTop(true);

sfvSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);

//创建SurfaceView后设置其背景颜色透明,比如它是在一图片上画图,则该图片没被SurfaceViewcanvas      

//画图的地方不变,在每次重新画之前可调用//canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR)来清屏

 

 

//然后在不断地画图过程中,每次画新图前,可以使用下面的方法来清屏

Canvascanvas = sfvSurfaceView.getHolder().lockCanvas( new Rect(0, 0, buffer.length *xMultipleLength + xBoundaryDistance+1, yLine));   

canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);

//配合sfvSurfaceView.setZOrderOnTop(true)

//sfvSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT)

//来使用进行透明清屏,上面两个调用在创建SurfaceView后即可调用



以上代码在小米2,华为T8600,SAMSUNG GT-B5530上验证过均OK。上面代码有一些字我在程序中自己定义的变量。

原创粉丝点击