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

안드로이드 레이아웃 중심점 잡기

0 추천

int width = getWindowManager().getDefaultDisplay().getWidth();

int height = getWindowManager().getDefaultDisplay().getHeight();

위 함수를 이용하면 상태바와 타이틀바를 포함한 전체 화면의 높이와 크기가 중심점을 잡는데요. 이게 아니고

제가 하려는 것은 상태바와 타이틀바와 버튼을 제외한 레이아웃만 중심점을(상대좌표로) 잡으려고 하는데 어떻게 해야 하는 건가요?

 

dddffaaas123 (230 포인트) 님이 2017년 1월 19일 질문
dddffaaas123님이 2017년 1월 19일 수정

1개의 답변

0 추천

레이아웃도 비슷하게 LayoutParam을 통해서 높이와 너비를 구할수 있습니다.

        int w = linearLayout.getLayoutParams().width;
        int h = linearLayout.getLayoutParams().height;

다만 그냥 위처럼 하면 화면에 그리기 전에 값을 참조하게 되므로 0이 리턴되게 될거에요.

ViewTreeObserver를 사용하면 간접적으로 화면에 그려진 이후의 값을 확인할수 있게 되므로 아래처럼 하면 될거 같네요.

        linearLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int w = linearLayout.getLayoutParams().width;
                int h = linearLayout.getLayoutParams().height;
            }
        });

 

Development Guy (70,570 포인트) 님이 2017년 1월 19일 답변
...