안드로이드 개발 질문/답변
(글 수 45,052)
canvas에 A 라는 비트맵을 그린 후
유저에게 어떠한 액션을 받아내면 draw된 A라는 비트맵을 지워 버리고 싶습니다..
어떻게 해야 한번 그려진 비트맵을 지워버릴 수 있을까요??
사용된 소스를 간략하게 정리하면
초기화 함수내에서
Bitmap A = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap_id);
를 이용해 비트맵을 얻어낸 후
onDraw 함수내에서
canvas.drawBitmap (A, new Matrix (), new Paint ());
이런 식으로 비트맵을 그려넣었는데...
그려진 비트맵 A를 다시 캔버스상에서 지우고 싶습니다..
어떻게 해야 가능한지요???
고수님들의 도움 부탁 드립니다.
2010.08.20 09:22:18
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear(); // 오버레이 리스트 지움
overlay = new Overlay();
listOfOverlays.add(overlay); // mapOverlay 클래스에서 추가된 것들을 새롭게 작성
이거 사용하면 기존의 오버레이들을 리스트화하여 지운뒤 다시 그 오버레이를 그리는건데
이걸 이용하여서
A B라는 오버레이가 있다면 특정 액션을 받아들인다면
화면상 오버레이들을 리스트로 만든 뒤 다 지우고 그 중 A면 A, B면 B만 다시 그리시면 될꺼 같은데여
listOfOverlays.clear(); // 오버레이 리스트 지움
overlay = new Overlay();
listOfOverlays.add(overlay); // mapOverlay 클래스에서 추가된 것들을 새롭게 작성
이거 사용하면 기존의 오버레이들을 리스트화하여 지운뒤 다시 그 오버레이를 그리는건데
이걸 이용하여서
A B라는 오버레이가 있다면 특정 액션을 받아들인다면
화면상 오버레이들을 리스트로 만든 뒤 다 지우고 그 중 A면 A, B면 B만 다시 그리시면 될꺼 같은데여
애초에 canvas 에 나열할때
if ( 유저에게 어떠한 액션을 받지 않음){
canvas.drawBitmap (A, new Matrix (), new Paint ());
}
으로 해놓고, 다시 캔버스를 새로 그리면 A 가 없어지겠죠. 이런 방식 원하신게 아니라면 수줍..