Android에서 View의 크기를 알아오고 싶을때 일반적으로
위의 api를 써서 원하는 view의 크기를 얻어 옵니다.
위의 방법은 View가 onDraw를 통하여 화면에 그려 졌을 경우에 크기를 얻을 수 있습니다. 만약 그전에 위의 api를 호출하게 된다면 0값을 얻어오게 됩니다.
만약 onDraw전에 View에 크기를 알고 싶은 경우에는
위의 api를 사용하면 됩니다.
여기서 중요한 것은 view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED) 메소드 인데 이 메소드를 통하여 view의 부모에게 크기를 위임하여 알아오게 해줍니다. 위 메소드의 파라미터로 넘겨지는 MeasureSpec은
위와 같은 설정을 지원해줌으로 원하는 설정값을 넘겨주시면 됩니다.
도움이 되셨으면 좋겠네요~ ^^
view.getWidth(); view.getHeight(); |
위의 방법은 View가 onDraw를 통하여 화면에 그려 졌을 경우에 크기를 얻을 수 있습니다. 만약 그전에 위의 api를 호출하게 된다면 0값을 얻어오게 됩니다.
만약 onDraw전에 View에 크기를 알고 싶은 경우에는
view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); view.getMeasuredWidth(); view.getMeasuredHeight(); |
여기서 중요한 것은 view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED) 메소드 인데 이 메소드를 통하여 view의 부모에게 크기를 위임하여 알아오게 해줍니다. 위 메소드의 파라미터로 넘겨지는 MeasureSpec은
MeasureSpec.AT_MOST : wrap_content 에 매핑되며 뷰 내부의 크기에 따라 크기가 달라진다. |
도움이 되셨으면 좋겠네요~ ^^