SurfaceView 캔버스 정리 솔루션

나의 문제: 나의 사용자 정의 View는SurfaceView를 계승하여 화판 기능을 하는데, 화포를 비울 때 항상 비울 수 없다.
온라인 시나리오 1,
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);  

2.
Paint paint = new Paint();    
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));    
canvas.drawPaint(paint);    
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));  

이 두 가지 방법은 나의 뷰에 모두 쓸모가 없다. 나는 뷰를 계승한 화포를 비우는 데 작용한 것 같다고 생각한다.
나중에 인터넷에서 SurfaceView에 대한 캔버스를 비우는 방법을 찾았지만 여전히 쓸모가 없었다.다음과 같습니다.
public void clearDraw() {  
        Canvas canvas = null;  
        try {  
            canvas = holder.lockCanvas(null);  
            canvas.drawColor(Color.BLACK);  
        }catch (Exception e) {  
            // TODO: handle exception  
        }finally {  
            if(canvas != null) {  
                holder.unlockCanvasAndPost(canvas);  
            }  
        }  
    } 

그 후에 탐색을 통해 자신의 View에 사용할 화포를 비우는 방법을 찾았습니다.
public void clear(){
        surfaceHolder.addCallback(this);
        path = new Path();
    }

이에 기록하겠습니다.

좋은 웹페이지 즐겨찾기