마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 Canvas 초기화나 투명배경으로 초기화 시키는 방법좀 알려주세요

0 추천
그리기 툴을 사용해야되는데
책의 소스를 참고해서 만들었습니다
그런데 제가 써야 할곳에서는 투명 배경에서 써야되서
배경을 투명으로 적용하니
뒤로 가기를 하거나 했을 경우 기존에 그려졌던 것들이 안지워지네요
원본 소스 보면 canvas.drawColor(Color.WHITE);
이렇게 해서 캔버스를 새로 흰색으로 그리더라구요
그런데 투명으로 다시 그려주니 그전에 그렸던것이 그대로 보입니다
Canvas를 완전 초기화 시키는 방법 없을까요??
흰색 바탕에서 그리고 뒤로가기 하면 잘 되는데 투명일 경우에는 안되네요
ㅠ.ㅠ
문제가 되는 화면입니다
Screenshot_2013-02-27-15-08-07.png
사각형 그릴때도 엄청난 잔상이...
ㅠ.ㅠ

 

김기훈 (390 포인트) 님이 2013년 2월 27일 질문

2개의 답변

0 추천
넵~~~! 방법이 없습니다.....

캔버스의 특성이지용..... 캔버스는 덧씌우기 밖에 안되요,...
익명사용자 님이 2013년 2월 27일 답변
0 추천

이미지뷰와 연결된 Bitmap에서 처리를 진행하세요.

실례로 

bitmap = Bitmap.createBitmap(widgh, height, Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
imageView.setImageBitmap(bitmap);

이때 canvas, bitmap, imageView는 제 경우에는 글로벌 변수입니다.

이렇게 되면 세 object가 reference로 연결이 됩니다.

canvas는 그리는 놈(화가)이고 그려지는 놈(캔버스)은 bitmap입니다.

당연히 canvas에서 헤매는 것이 아니라 bitmap에서 처리를 해야 합니다.

캔버스를 청소해야지요. 무슨 색으로? 투명한 색으로.... 다음과 같이....

안되면 연락하세요.

bitmap.eraseColor(Color.TRANSPARENT);

 

캔버스에서 해결책을 찾지 말고 이미지뷰에 연결된 비트맵에서 해결책을 찾는 님이 2017년 11월 26일 답변
...