brunch

You can make anything
by writing

C.S.Lewis

by 티몬 디자인스토리 Aug 04. 2016

xhdpi에서40dp면 xxhdpi에서는 몇dp일까?

이게 뭐라고 이렇게 헷갈릴까

이상한 질문이라고 생각하는 사람도 있겠지만 이런 질문을 생각보다 많이 받는데,

결과부터 이야기하면. xhdpi에서40dp면 xxhdpi에서도 40dp이다.

디자이너들에게 xhdpi라고 하면720*1280(px)화면을 떠올리고 xxhdpi화면은 1080*1920(px)의화면을 떠올리는 경우가 많을 것 이다.


“Xhdpi는 나누기2고 xxhdpi는 나누기3이고 dp단위…뭐가 뭔지 너무나 헷갈려요”


디자인 시안 작업하는 픽셀단위 사이즈를 중심에 두고 dp로 변환하려고생각 하려 하면 구조가약간 꼬여버릴 수 있다.

dp작업 기준으로 생각한 뒤 각각 모바일 화면에 어떻게 노출될 것인지로 생각하면 이해가 조금 더 쉬울 것이라 생각한다. 

아래 그림과 같이 안드로이드 스튜디오에서 가로를 가득 채우고 세로가 40dp인사각형의 레이아웃을(개발자가) 작업 하였을 경우 각 기기에서는오른쪽과 같이 노출된다


dp단위를 기준으로 두고 모바일 화면에 어떻게 노출될 것인지 생각해보자.


dp단위로 개발이 되면,레이아웃 속성에 따라 기기와상관없이 가로는 모두 꽉 채워지며 세로 인 40dp는 xhdpi 기기에서는계산에 따라 X2를 한 80px로 노출되며 xxhdpi기기에서는 X3을한120px로 노출이 된다.

반대로 생각해보자. 내가 디자인 작업을 한 화면의 요소들의 크기나 간격을 dp로 계산할 경우에는 아래와 같이. 1080*1920 사이즈 작업물 에서는 나누기3을 해야 dp단위가 나오고, 720*1280사이즈로 디자인 작업을 할 경우 나누기 2를 해야 dp사이즈가 나오게 된다.


주 대응 해상도가 어떤것인지 고려하여 계산해보자


개발한 레이아웃 기준으로 기기마다 위 계산으로 뿌려지게 되는 환경이다.

720*1280화면에서는 나누기2로 dp값이들어가므로 2의 배수로 해야 정수로 딱 떨어지고,(의도한픽셀값이 정확하게 노출) 1080*1920화면을 타겟 해상도로 작업을 할 때에는 3의배수로 작업을 해야 정수로 떨어지면서 예상 가능한 사이즈로 노출이 된다.


그래서 고해상도를 대응해야겠다. 라고 생각했을 때 dp단위로 가이드가 전달 되는 업무 분위기라면, 개발자들은 사실 큰이슈는 없다. 이미지만 고해상도가 제공이 된다고 하면 개발자들은 그냥 평소처럼 가이드를 보며 화면을짜면 되기 때문에, (굳이 있다고 하면 이미지 용량문제 정도?)


그럼 더 나아가서 xhdpi(720*1280)으로 화면을 디자인 후 , xxhdpi 고해상도 리소스를 대응하려면 어떻게 해야 할까.



xhdpi에서 1.5를곱하면 xxhdpi 가 된다고(단순하게)생각하자.

 리소스를 제작 후 1.5를곱한 비율로 리소스를 제작하여 전달하면 된다.(xhdpi화면 내에20x20픽셀의 아이콘을 제작하였다면, xxhdpi용 고해상도 사이즈는 [곱하기 1.5가 적용된]30x30픽셀의 아이콘이 될 것이다.)

그래서 가능한 짝수로 디자인이 되면 리사이징 작업 시 소수점으로 떨어지지 않고 정수로 사이즈가 계산이 되어 좋다.

일반적으로 xhdpi기준으로 화면을 제작하고(720x1280) 고해상도용 이미지 리소스만 추가로 대응하는데, dp계산시에도 짝수로 작업해야 정수로 떨어지고, xxhdpi용 리소스 리사이징 작업 시 에도 짝수로 작업이되어야 정수로 떨어지기 때문에 짝수 작업을 권장한다.


만약 px로 가이드를 전달하고 있다고 하면 개발자들이 dp변환을 위하여 반으로 나눌 때 .5처리를 하던지 반올림을 하던지작업자에 따라 알아서(?)처리하는 경우가 대부분이므로 이 정도를 쿨 하게 넘어 갈 수 있다면 괜찮지만, 그렇지 않다면 짝수로 작업하자.



픽셀을 dp로 변환하는 법을 검색해 본 사람이라면 한번쯤은 지나치면서보았을 공식이 있을 것이다.

dp = px * (160/density)

처음엔 이 공식을 보고 전혀 이해를 하지 못했었는데 나중에 시간이 흐르니 이해가 되어 잊기전에 아래와 같이 정리해보았다.

마지막 부분을 보면 눈치챘을 지 모르지만, 글의 앞 내용과 정확하게같은 내용이다.

앞의 내용은 위 그림의 정답만을 이용하여 이해하기 쉽게 풀어본 내용이다. 

매거진의 이전글 티몬 덕에 편하게 받았CU
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari