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

안드로이드 레이아웃에서 dp 질문입니다.

0 추천
레이아웃 구성시

mdpi를 기준으로 1px = 1dp 로 치자면 가로 480 세로 320 의 단말기는 40dp의 가로너비를 가진 이미지 4개로 가득 채울 수 있다고 이해했습니다.

hdpi는 1.5px = 1dp 로 역시 40dp 로 지정하면 실질적으로 1.5 배가 된 이미지가 480px(240dp)을 가득 채웁니다.

 

궁금한 것은 xhdpi 입니다. 안드로이드 문서상에서는 320dp로 간주하고

mdpi의 160dp 에서 2배라고 얘기합니다. (2px = 1dp)라고 하죠

문제는 xhdpi는 보통 해상도가 720px x 1280px입니다.

 

그렇다면 40dp 로 지정했을 경우 40dpx2 = 80dp 이 이미지를 4개를 넣는다면 640px(320dp)까지만 채울 수 있지요.

그런데 720px은 360dp 입니다(mdpi-160기준) 그렇다면 나머지 40dp가 빈 공백이 보여집니다.

 

xhdpi  // mdpi, hdpi 의 레이아웃 xml에서 dp값을 해상도에 맞게 계산해서 따로따로 넣어줘야 하는 건가요?

dp를 하나만 쓴다면 편하게 가능할텐데 이게 안 되네요...

 

원래 dp가 쓰이는 의도가 저런 걸 염두한게 아닌건가요?
Trigun (210 포인트) 님이 2013년 8월 2일 질문

1개의 답변

+1 추천
dp는 화면 해상도와 아무 상관관계가 없습니다.

1280x800 해상도에   xhdpi 가 아닌 기기도 있습니다.
익명사용자 님이 2013년 8월 2일 답변
그럼 dp는 고정이 아니라 레이아웃마다 계산해야된다는 말씀이신거죠?
물론 제 노트 8.0이 1280px 800px mdpi이더군요.
8인치이며 800px 라 tvdpi가 맞는 것 같은데 강제로 mdpi로 맞춘건지 모르겠지만요.
dp는 화면 크기나 해상도에 상관없이 물리적으로 비슷한 크기로 UI 컴포넌트를 보여주기 위해 안드로이드에 도입된 것입니다.
디바이스가 올바르게 설정되어 있는 경우 해상도나 화면 크기에 상관없이 같은 dp 크기의 버튼은 비슷한 크기로 보입니다.

좀 더 자세한 내용은 http://developer.android.com/guide/practices/screens_support.html 여기를 보시면 됩니다.
picture 2 와 3을 비교해보면 dp 에 어떤 장점이 있는지 알 수 있습니다.
감사합니다~~
단순히 비슷한 크기로만 지원되는 것이었군요 ㅠㅠ
...