美文网首页
SurfaceView背景侵入问题

SurfaceView背景侵入问题

作者: 你需要一台永动机 | 来源:发表于2017-10-30 11:07 被阅读487次

    大部分的人都想着加个背景颜色就行了,结果背景颜色会覆盖SurfaceView导致无法正常显示。

    此时有人想出了解决方案

    sfv.setZOrderOnTop(true);      // 这句不能少  
    sfv.getHolder().setFormat(PixelFormat.TRANSPARENT);
    

    虽然这个可以勉强实现功能,但是又导致其他问题。此时SurfaceView位于视图最顶部,把布局中的以前顶层view都覆盖掉了。

    一下网上最好的解决方案

    //surface回调  
    surfaceHolder.addCallback(new SurfaceHolder.Callback() {  
        @Override  
        public void surfaceCreated(SurfaceHolder holder) {  
                    Canvas canvas = surfaceHolder.lockCanvas();  
            canvas.drawColor(Color.WHITE);  //随便设置背景颜色
            surfaceHolder.unlockCanvasAndPost(canvas);  
        }  
        @Override  
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {  
      
        }  
      
        @Override  
        public void surfaceDestroyed(SurfaceHolder holder) {  
                 timerTask.cancel();  
             timerTask = null;  
        }  
            }); 
    

    相关文章

      网友评论

          本文标题:SurfaceView背景侵入问题

          本文链接:https://www.haomeiwen.com/subject/vmrppxtx.html