안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
ApiDemo 핑거페인트를 참고 하였습니다.
그중 지우개 모드가 있는데요.
지우개모드로 할때 페인트를 아래와 같이 합니다.
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
이렇게 하고 터치 무브를 하면 그렸던 선들이 지원지는 데요.
문제가 canvas 아래에 imageview를 넣고 배경 이미지를 넣어주었습니다.
즉 아래와 같은 레이어 구조로 되어 있습니다.
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/btnlayout" >
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<그리기 Canvas 추가/>
</RelativeLayout>
java에서 그리기 뷰를 만들어 addView해주었는데요.
지우개 모드시 imageview에 있는 이미지까지 지워저 버립니다.
어떻게 처리를 해야 될지 조언 부탁드립니다.

give & take
자답입니다.
데모에 있는 핑거페인트를 유심히 보니 제가 조금 다르게 적용을 하였습니다.
데모에 보면 비트맵을 생성하여 거기에 그림을 그리고 지우고 한후 그 비트맵을 캔버스에 보여줍니다.
그렇게 하면 배경이미지가 지워지지 않습니다.
그런데 제가 한 방법은 비트맵에 그리거나 지우는게 아니라 onDraw()에 넘어오는 canvas에 직접 그리고 지우고 하니
뒤에 있는 배경까지 지워지게 된것입니다.
저랑 같은 구조로 고민을 하셨다면 참고해 주시면 감사합니다.