티스토리 뷰

Mobile/Android

[Android]View의 크기 알아오기

out of coding 2014. 9. 22. 10:36

Android에서 View의 크기를 알아오고 싶을때


View.getWidth();

View.getHeight();


위의 메소드를 이용하여서 알아올수 있습니다.

그러나 이 방법은 View가 onDraw를 통하여 화면에 그려 졌을 경우에 크기를 얻을 수 있습니다. 

만약 그전에 호출하게 된다면 0값을 얻어오게 됩니다.


onDraw전에 View에 크기를 알고 싶은 경우에는


View.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); 

View.getMeasuredWidth();

View.getMeasuredHeight();


위의 API를 사용하면 됩니다.


여기에서 알아야 할 부분은 View.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED)의 내용인데,

이 메소드를 통하여 View의 부모에게 크기를 판단하여 알아오게 해줍니다.


위 메소드의 파라미터로 넘겨지는 MeasureSpec 값은

1. MeasureSpec.AT_MOST : wrap_content 에 매핑되며 뷰 내부의 크기에 따라 크기가 달라진다.

2. MeasureSpec.EXACTLY : fill_parent, match_parent 로 외부에서 미리 크기가 지정되었다.

3. MeasureSpec.UNSPECIFIED : Mode 가 설정되지 않았을 경우. 소스상에서 직접 넣었을 때 주로 불립니다.


위와 같은 설정을 지원해줌으로 원하는 설정값을 넘겨주시면 됩니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함