本文主要是介绍SurfaceView背景设置为透明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
将SurfaceView背景设置为透明,主要添加以下几句话就可以了:
在SurfaceView创建后设置一下下面的参数:
setZOrderOnTop(true);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
还有在draw方法中绘制背景颜色的时候以下面的方式进行绘制就可以实现SurfaceView的背景透明化
canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);
在SurfaceView创建后设置一下下面的参数:
setZOrderOnTop(true);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
还有在draw方法中绘制背景颜色的时候以下面的方式进行绘制就可以实现SurfaceView的背景透明化
canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);
清屏可以用橡皮擦的画笔画一个屏幕大小的矩形就可以了
//这是定义橡皮擦画笔
Paint clearPaint = new Paint();
clearPaint.setAntiAlias(true);
clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
//清屏过程
mDrawingView.mCanvas.drawRect(0, 0, 800, 480, clearPaint);
Canvas canvas = mDrawingView.mSurfaceHolder.lockCanvas();
canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);
canvas.drawBitmap(mDrawingView.mBitmap, 0, 0, mDrawingView.mBitmapPaint);
mDrawingView.mSurfaceHolder.unlockCanvasAndPost(canvas);
(mDrawingView是我的SurfaceView)
//这是定义橡皮擦画笔
Paint clearPaint = new Paint();
clearPaint.setAntiAlias(true);
clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
//清屏过程
mDrawingView.mCanvas.drawRect(0, 0, 800, 480, clearPaint);
Canvas canvas = mDrawingView.mSurfaceHolder.lockCanvas();
canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);
canvas.drawBitmap(mDrawingView.mBitmap, 0, 0, mDrawingView.mBitmapPaint);
mDrawingView.mSurfaceHolder.unlockCanvasAndPost(canvas);
(mDrawingView是我的SurfaceView)
http://www.eoeandroid.com/thread-40776-1-1.html
这篇关于SurfaceView背景设置为透明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!