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

java code 상에서 스크린 사이즈를 얻어왔는데 1920x1080이 아니고 1920x1032로 나옵니다.

0 추천
해상도가 1920x1080인 Device에서 UI작업을 하고 있습니다.

AndroidManifest.xml에 다음과 같이 설정했습니다:

    <application
         ......
         android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        ......
        >

MainActivity.java에서 다음과같이 스크린 사이즈를 얻어오도록 해보면 1920x1080이 아니고 1920x1032로 나옵니다.

       DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
       
        int displayWidth = metrics.widthPixels;
        int displayHeight = metrics.heightPixels;
       
        Toast.makeText(this,  "Width : " + displayWidth + " / Height = " + displayHeight,  Toast.LENGTH_LONG).show();
       
그래서, 직접 main_activity.xml에서 height를 match_parent에서 1080px로  지정해 주었습니다.

<?xml version="1.0" encoding="utf-8" ?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="1080px"
   ........
>

그래도 결과는 동일하게 1920x1032로 나옵니다.

분명히, AndroidManifest.xml에서 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 를 지정해서
no TitleBar, no Status Bar 상태인데도 말입니다.

어떻게 이 문제를 해결할 수 있을지 도움 부탁드립니다.
하얀전구 (220 포인트) 님이 2014년 4월 24일 질문

1개의 답변

+1 추천
기기에 홈버튼이 소프트웨어 방식인가 봅니다.

이런 경우 해당 부분을 뺀 나머지 부분의 크기가 리턴됩니다.
익명사용자 님이 2014년 4월 24일 답변
정상적으로 1920x1080으로 값을 얻을수 있는 방법이 없을까요? XML상에서 layout_weight를 사용해서 view의 height를 지정해 놓은 상태라서, code상에서 각각의 동적인 높이에 따라 inflate를 할 목적인데, 값이 다르니까.. UI 구현이 엉망입니다. 그리고, 참고로, 홈버튼은 소프트웨어 방식이 아닙니다. 하드웨어적으로 별도로 버튼이 있습니다. 안드로이드 이미지를 새로이 빌드해야 할것 같은데 어떻게 해야 1920x1080 크기를 정확하게 얻을수 있을까요?
...