안드로이드 개발 질문/답변
(글 수 45,052)
이미지 관련 예제를 보니 Canvas에 Drawable을 사용해서 그림을 표현할때도 있고
BitMap을 이용해서 표현할때도 있는데요, 어떤 경우에 Drawable, BitMap
을 사용하는지 알고 싶습니다.
답변 부탁드릴께요.
BitMap을 이용해서 표현할때도 있는데요, 어떤 경우에 Drawable, BitMap
을 사용하는지 알고 싶습니다.
답변 부탁드릴께요.
2010.08.23 16:21:52
Bitmap은 말그대로 비트화 시킨 이미지를 생각하시면 됩니다. canvas.drawBitmap() 으로 화면에 좌표를 정하고 그리게 되죠
Drawble은 이런 비트맵등을 가지고 그리기에 관련된 어떠한 하나의 행위들로 포장했다고 생각하시면 됩니다. 가령 AnimationDrawble은 받아들인 이미지 리소스를 그리고 애니메이션이 재생되게 만들고, ScaleDrawable은 받아들인 이미지 리소스의 크기조절을 가능하게 합니다. 이런 그리기와 관련된 래퍼클래스들을 Drawble이라고 생각하면 됩니다.
만약에 내가 AnimationDrawable없이 프레임 애니메이션을 구현한다고 생각해보면 답이 나올텐데요 Bitmap이미지를 번갈아 가며 스레드등을 돌려서 일정시간주기로 그린그림들을 교체해서 애니메이션을 만들어야 되는데 AnimaitonDrawble로 래핑했다면 그냥 인스턴스를 만들고 addFrame(Drawable frame, int duration) 를 통해 해당되는 프레임을 넣어주고 주기를 정해서 start()와 stop()으로 애니메이션 재생을 손쉽게 할 수 있죠