안드로이드 개발 질문/답변
(글 수 45,052)
draw를 사용한 프로그램에 실수로 Ondraw를 사용하니깐 OnMeasure에서 익셉션이 나면서 죽어버리내요..
둘이 비슷한 메소드같은데 차이가 뭔가요?? API문서보고는 도무지 차이점을 몰라서요..
그리고 소스들을 보니깐...
super.draw(canvas) <== 요놈을 사용한 소스가있고 사용 안한 소스가 있는데..
썼을때와 안썼을때의 차이점은 뭔가요??
질문이 많이 허접하더라도 자세한 답변 좀 부탁드리겠습니다.
둘이 비슷한 메소드같은데 차이가 뭔가요?? API문서보고는 도무지 차이점을 몰라서요..
그리고 소스들을 보니깐...
super.draw(canvas) <== 요놈을 사용한 소스가있고 사용 안한 소스가 있는데..
썼을때와 안썼을때의 차이점은 뭔가요??
질문이 많이 허접하더라도 자세한 답변 좀 부탁드리겠습니다.
2009.06.23 01:50:21
draw는 일반적으로 View를 Canvas에 그리는데 필요한 절차가 들어있는 Method입니다. draw는 항상 View를 사용하는 곳에서 기대되는 일관적인 행동을 해야하기 때문에 override하면 안되는 method입니다. onDraw는 실제도 해당 View를 그릴때 override를 해서 사용할 수 있는 메서드구요.
보통 외부에서 사용할때는 draw를 호출해서 canvas에 그리게 할수 있습니다. 그리고 onDraw는 draw의 과정중에 자동으로 불리는 부분이구요. protected 이니 당연히 외부에서 불릴수는 없고 자체적으로 View가 그려질때만 사용되고 다른 곳에서 호출될일은 거의 없습니다.
draw를 어디서 어떻게 사용하는지는 View마다 사용하는데마다 천차만별이라 일률적으로 설명해드릴수 없는 부분입니다.