안드로이드 개발 질문/답변
(글 수 45,052)
xml에서 View 의 width나 height 를 "wrap_content"로 줄경우나, 크기 지정하지 않고 gravity로 크기 조정하는경우
view의 크기가 다른 환경에 따라서 변하게 되는데
View를 가져와서 getWidth()와 getHeight()로 값을 가져오면 0이 나오더군요
자바코드로 View의 현재 크기를 알아오려면 어떻게 해야 하나요?
2010.02.04 17:09:59
onMeasure를 오버라이딩하는 방법과, onSizeChanged를 오버라이딩하는 방법이 있는데 이미 생성된 뷰의 크기를 얻어오는건 저도 궁금하네요. 못찾아서 저 함수들을 오버라이딩해서 w, h를 구해서 사용중입니다 ㅡ.ㅡ; 그런데 onMeasure의 경우에는 여러번 호출되는 경우도 있더군요. onSizeChanged를 오버라이딩하시면 자리가 잡힌(?) 뷰의 넓이와 높이가 파라메터로 들어옮니다.
2010.02.04 19:44:21
제가 필요했던 작업은 View를 상속받아 onSizeChanged 오버라이딩을 이용해서 해결했습니다 감사해요~
제공하는 뷰의 자리가 잡힌(?) 크기를 알아오는 방법이 여전히 궁금하긴 하네요
참고 : 본문내용중 width와 height가 0이 나왔다고 했는데, 테스트해보니 그 이유는 Activity의 onCreate에서는 동적인 크기지정(wrap_content, fill_parent)의 크기가 정해지기 전이기 때문에 0이 나왔던 것입니다. onSizeChanged가 Activity의 onCreate가 끝나고 발생되는 걸로 알수 있군요