출처 : http://purepleya.blogspot.kr/2011/09/android-view-layout.html
Android - view, layout의 사이즈 구하기
바탕화면의 상대좌표를 이용하여 그림을 그리거나, 콤포넌트를 배치하려고 할때 화면, view, layout 의 사이즈를 알아야 하는 경우가 있다.
아래와 같이 코딩해 보지만 원하는 결과값을 얻을 수 없다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_layout);
View layoutMainView = (View)this.findViewById(R.id.mainLayout);
Log.w("Layout Width - ", String.valueOf(layoutMaintView.getWidht()));
Log.w("Layout Height - ", String.valueOf(layoutMaintView.getHeight()));
}
========= Result =========
Layout Width - 0
Layout Height - 0
원인으로는 onCreate 함수는 화면이 그려지기 전에 호출 되는 관계로 onCreate 시 객체의 사이즈를 구할 수 없다.
따라서 onCreate가 아닌 다른 함수에 해당 코드를 작성해야 한다.
그 코드는 바로....
onWindowFocusChanged(boolean hasFocus)
@Override
public void onWindowFocusChanged(boolean hasFocus) {
public void onWindowFocusChanged(boolean hasFocus) {
View layoutMainView = (View)this.findViewById(R.id.mainLayout);
Log.w("Layout Width - ", String.valueOf(layoutMaintView.getWidht()));
Log.w("Layout Height - ", String.valueOf(layoutMaintView.getHeight()));
}
위와 같이 작성하면 올바르게 사이즈를 리턴하는 것을 확인 할 수 있다.
'Android Dev' 카테고리의 다른 글
[맥]안드로이드 apk 리버싱 (0) | 2014.07.15 |
---|---|
이클립스 안드로이드 프로젝트 import 안될때 (0) | 2014.06.20 |
[안드로이드] 페이스북 디버그용 hash key 얻기(맥버전) (0) | 2014.06.17 |
Quick Return 안드로이드 소스 페이스북 리스트뷰 동적아이템 (2) | 2014.04.07 |
[안드로이드] 폰 오디오 모드 체크(소리, 진동, 무음) (0) | 2013.08.05 |