마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

레이아웃 weight 설정후 java 코드에서 width,height 값을 받아 올 수 있나요?

0 추천
xml로 리니어 레이아웃을 나눠놓고 width는 fill_parent, height는 weight 값을 통해 설정했습니다.

기기마다 각각 레이아웃이 차지하는 height가 다를 것 같은데 java코드에서 받아 오는 방법이 뭐가있을까요??

 

LinearLayout linear = (LinearLayout) findViewById(R.id.해당레이아웃id);

int Height = linear.getHeight;

이런식으로 getWidth, getHeight 값을 받아와봤는데 전부 0값이 들어가 있네요.

힌트라도 주시면 감사하겠습니다. ㅠㅠ
박배찌 (220 포인트) 님이 2014년 10월 10일 질문
액티비티에서 WindowManager wm = getWindowManager();
wm.getDefaultDisplay().getHeight();
해서 해당 가중치를 곱하여서 해결하긴했습니다..

혹시 다른 쉬운 방법있으면 답변해주시면 감사하겠습니다.

2개의 답변

0 추천
 
채택된 답변
OnCreate()가 호출되고 나서야 View사이즈가 정해집니다.

그래서 0으로 나오는것이고요

OnCreate에서 ViewTreeObserver를 이용하면 미리 사이즈를 계산할 수 있습니다.

http://developer.android.com/reference/android/view/ViewTreeObserver.html
q1212 (26,020 포인트) 님이 2014년 10월 10일 답변
박배찌님이 2014년 10월 12일 채택됨
0 추천
onCreate 에서 getHeight를 호출하면 당연히 0이 나옵니다.

화면에 뷰가 보여진 이후에 호출해야 제대로된 값이 나옵니다.
익명사용자 님이 2014년 10월 10일 답변
...