[Android]- java code로 view.getWidth(), view.getHeight()가 0이 나올때

Published on: 2013. 11. 14. 16:30 by louis.dev
Java Code로 어떤 View의 폭과 높이를 구할때 view.getWidth(), view.getHeight() method를 통해 값을 가져올수 있습니다. 그런데 사용하는 위치에 따라 해당 값들이 모두 0으로 리턴이 될때가 있습니다. getWidth(), getHeight()가 0으로 리턴되는 이유는 간단함니다. 해당 view가 아직 화면에 그려지지 않고 있기 때문에 getWidth, getHeight가 0이 나오게 되는것입니다. 바꾸어 말하자면
view가 화면에 그려져 있지 않다면 getWidth(), getHeight()는 0이 리턴
이 된다는 말입니다. 그런데 때에 따라서 view가 화면에 그려지기 전에 width와 height를 구해야 한다면 다음과 같이 하면 됩니다.
view.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED);

int width = view.getMeasuredWidth();
int height = view.getMeasuredHeight();
이렇게 하면 width와 height를 구할수 있게 됩니다.