다들 알다시피 DIP 값을 이용하는건 다들 아실겁니다.
하지만 저 두 기기에 대해서만큼은 예외로 하고 싶네요.
다들 알다시피 갤럭시 S는 240DIP 와 480 X 800의 해상도를 가지고 있습니다.
그리고 갤럭시 노트는 320DIP와 800 X 1280의 해상도를 가지고 있죠.
이를 DIP를 이용해서 이미지를 표시하면 어떻게 될까요?
일단 갤럭시 S의 DIP 비율은 320dp X 533dp입니다.
가로 480px200px, 세로 200px인 이미지를 하나 뿌린다고 생각해 봅시다.
240DIP 체계에서는 2dp = 3px이므로 가로 320dp133.3dp 세로 133.3dp가 됩니다.
갤럭시 S에서는 정상적으로 가로 480px200px, 세로 200px로 나오게 됩니다.
하지만 갤럭시 노트의 DIP 비율은 어떻게 될까요?
320DIP에서는 2dp = 4px 이므로 400dp X 640dp가 됩니다.
동일한 크기의 이미지를 갤럭시 노트에서 뿌리게 되면 가로 320dp100dp의 이미지가 되어 여백으로 80dp300dp가 남게 됩니다.
가득 차지 않게 되는거죠.
(추가)Wrap_contents로 화면에 뿌리게 되면 똑같이 200px로 뿌리지만 비율상으로는 갤럭시 노트에서 더 작게 보이게 되는거죠.
여기에서 알 수 있는점은 하나입니다.
폰에서의 800px 해상도는 변태 해상도다!
(추가)실제 기존 폰과 같은 비율의 x-large 폰은 640px X 1066px이 되었어야했죠.
각 디바이스별로 layout을 만들어주거나 코드상에서 해상도를 받아와 처리하는걸 추천드립니다.
ps/ 추가로 갤럭시 HD의 경우 720px X 1280px 이죠. 이는 360dp X 640dp로 아트릭스와 같은 비율입니다.
이는 아트릭스와 갤럭시 HD는 같은 layout을 이용할 수 있습니다.
ps2/ 간만에 와서 글 하나 싸지르고 갑니다...현재 하는 프로젝트 진행하는데 노트때문에 살짝 짜증났었어요..결국 개별 해상도별로 layout 만들기로 햇네요..
안드로이드는 폰의 화면 크기에 대한 제약(?) 이 존재하지 않습니다.
폰이나 디바이스 마다 가로 세로 비율을 달라지구요.
이미지를 늘려서 채우던지, 혹은 일부만 차게하던지는 만드는 사람의 선택이지만,
화면이 크기나 비율이 각 디바이스마다 다를 수 있다는 것을 염두해 두어야 한다는 것이랍니다.
제가 본 상황에서 본문내용이을 요약하면, (제가 오해 했을 수도 있습니다만)
"DPI을 썼더니 일부폰에 화면이 다 차지 않는다,
그러므로 화면의 실제 해상도를 구해서 출력하는 것으로 해결할 수 있다 "
정도로 보았구요.
그래서 화면을 다 채우려는 용도라면 실제해상도를 구하지 않아도 Fill_Parent 등으로 가능하다는 것과
DPI는 화면을 다 채우거나 하는 용도가 아니란 것을 말씀드린 것이랍니다.
혹시 제가 본문글을 잘못이해하고 답변 달아 드린 것이라면 죄송합니다.

dip가 일단 만능은 아닌것이 맞습니다
스크린사이즈랑 dip랑은 별로 그닥 관계없고... 밀도랑 상관이 있지요....
같은 hdpi에서 20dip를 잡아는데 사이즈가 다른 단말이다 하면 둘다하면 똑같은 20dip크기를 잡을거고요
위에 예시를 들으신것처럼 노트랑 갤s라면 xhdpi와 dpi이기때문에 완전 다른결과가 나옵니다.
초반엔 dip를 사용해서 앱을 만들수도 있었을때가 있었지요. 하지만 날이갈수록 해상도는 늘어나고 더불어 기형 해상도(ex>레이더, 옵노트)
가 늘어나면서 dip를 쓰되 어쩔수 없을때만 사용하게 되더군요.
지금 상황에서 dip는 많이 쓰지 않는것을 추천 드리고 싶기도 합니다 ㅠㅠ(px는 절대 안되구요 ㅎㅎ)
반년전부터 저같은 경우에는 android:layout_weight를 써서 레이아웃을 많이 짜거나 해상도 별로 레이아웃을 다 따로 만들어 주고 있네요..
해상도 관련에 대해서는 dip 사용보다는 layout_weight 사용이 더 잘맞습니다.
다만 정적인 화면에서는 속도가 그나마 쓸만한데 .. 스크롤이 들어가면 문제가 되곤하죠..
그리고 Ratio 에 대해서만 생각했기 때문에 가로 세로 비가 정확하게 맞아야 유지가 됩니다.
제일 정확한건 픽셀단위 측정법으로 만드는 프로그램이고
이미지는 리사이징 되더라도 화면 비례 여백부분을 커버하는 나이패치 방식이라던가
패턴화 해서 리사이징 되는 방식으로 바꾸어야 유관으로 느끼기에 이상한 왜곡현상이 덜합니다.
한 어플로 여러 해상도를 맞춘다는것은 사실상 무리가 있는 작업입니다.
결국 디자인이 어떻게 나오느냐에 따라 다릅니다.
되도록 배경은 단일 패턴 혹은 단방향 그라데이션으로 되어야 (대각선말고 x축 혹은 y축 한방향으로....) 9-patch나 repeat로
원하는 효과를 잘 낼수 있습니다.
배경에 무슨 예술작품 하나 그려놓으면 그건 그냥 적당히 다른 분들과 협의를 하거나 각각 제작해야함을 어필하여
그냥 돌아서게 만드는게 최고입니다.
제가 예전에 만든 모 어플은 18메가가 나왔습니다.... 원인은 이미지 ㅡㅡㅋ 그것도 단일해상도입니다.
뭐 이런거 각각 만들면 어플크기는 산으로 갈겁니다.
저같은 경우에는 지금까지 나온 휴대폰중 최대 해상도를 기준으로 이미지를 만들어 버림니다.
그리고 절대로 고정 크기(dip, px, sp등)은 서의 사용하지 않구요
높이나 너비값은 대부분 android:layout_weight를 사용하고 있습니다.이렇게하면 대부분의 해상도를 지원할수 있게 됩니다.
하지만 기형 해상도(예를들면 갤럭시탭(1024짜리 해상도는 이거 밖에 없더군요..), HTC레이더(540x960)) 에서는 따로 만들어 줘야 한다는거죠
(전 갤럭시탭만 만들어 줍니다) 제가 만들었던 어플중에서 잴 높았던게 35메가까진 나왔었네요...
(갑에서 해상도 별로 이미지 다 만들어 달라고 고집을 피워서 -_-;)
dip(dp)는 각 폰별로 비율을 맞추기 위한 것이지
화면에 가득차게 하는 용도가 아니랍니다.
LG에서 4:3 비율의 폰도 말들고, 패드들중에 화면비율이 다른 것도 있답니다.
화면에 가득차기를 원하시면 layout의 fill_parent 같은 것이나
RelativeLayout 같은 것을 사용하셔서 layout 으로 맞추셔야 합니다.