안녕하세요..

 

지금까지 개발할때 dp를 써서 레이아웃을 맞춰본적이 한번도 없거든요..

 

늘 px로만 레이아웃을 맞춰오고 있습니다..

 

근데 안드로이드는 px보다 dp를 쓰기를 권장을 하잖아요.

 

저도 알곤있지만 계산도어렵고 굳이 dp를 쓰는 이유를 이해를 못해서 px로 계속 써오고있거든요..

 

px보다 dp가 나은점이 뭐가 있는지 궁금합니다..

 

예를들어서.. 갤럭시 시리즈만본다고하면

 

갤1(800x480) 갤탭7(1024x600) 갤3(1280x720) 갤노트1(1280x800)크게 4종류로 나눌수있고

dpi로 분류하면 갤1(hdpi) 탭7(mdpi) 갤3(xhdpi) 갤노트1(xhdpi) 탭10.1(mdpi)등으로 나눌수 있잖아요.

 

저같은 경우는 위에 해상도별로 이미지를 다 받고있어요. 이미지를 해상도별로 4종류를 받으면 각 레이아웃에 맞게 픽셀로 조정하면 정확하게 옮길수가 있고, dpi가 달라도 해상도가 똑같기때문에 픽셀로 조정하면 같은 해상도 다른dpi라도 다 똑같은 위치에 적용이 되잖아요.

레이아웃 4개를 만들어서 픽셀위치만 살짝 조정해주면 전기종의 위치가 다 들어맞는데 dp로 쓰면 각 dpi마다 각 해상도마다 다 다르게 계산해줘야 하는거 아닌가요?

 

mdpi hdpi xhdpi가 해상도마다 다 다르니 모든 해상도 dpi마다 다 계산해줘서 dp값을 넣어주면 장난아닐거같은데, 어떤면에서 픽셀보다 유리한건지 궁금합니다..

 

 

 

간단하게 요약하자면

픽셀로 계산하면 800x480 이미지가 있으면 left margin 100px, top margin 100px 을 주었다면 

mdpi, hdpi, xhdpi 가 모두 똑같은 위치에 적용되는데 반해

 

dp로 계산하면 mdpi에선 left margin 100dp, top margin 100dp,  

hdpi 에선 le margin 150dp, top margin 150dp

xhdpi에선 leftmargin 200dp, top margin 200dp 등과같이 3번을 계산해줘야 원하는 위치에 들어서는게 아닌가요?

 

 

예를들어 똑같은 1280x800이라도 dpi가 다른경우(갤탭10.1은 mdpi,  갤노트1은 xhdpi)라고하면

dp로 계산한다면 두기종 따로 계산을 해서 넣어줘야되지만 pixel로 하면 두기종 모두 같은 해상도(1280x800)이기 때문에 픽셀로 넣어주면 똑같은 위치에 놓이게 되잖아요..

 

같은 해상도라도 dpi가 다른경우가 한둘이 아닌데 이런면에서 dpi로 계산하면 몇번을 중복 계산해야되는건지 모르겠는데..

픽셀같은경우는 픽셀만큼만 계산하면 dpi무시하고 다 들어맞는데 dp(dip)로 계산하면 해상도 및 dpi까지 고려해가면서 계산해야 하는거같은데.. 그러면서도 dp를 쓰는게 픽셀을 쓰는것보다 큰 장점이 있는건지 궁금합니다..

 

아직 1년정도밖에 안된 초짜라 모르는게 많아서 여쭤봅니다ㅡ;