SurfaceView 캔버스 정리 솔루션
2277 단어 작업-안드로이드
온라인 시나리오 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();
}
이에 기록하겠습니다.