티스토리 뷰

dpi (Dots Per Inch )

1인치(2.54 센티미터)에 들어 있는 픽셀의 수. 안드로이드에서는 160을 기본으로 한다.

참고 : http://en.wikipedia.org/wiki/Dots_per_inch



dp 또는 dip (Density-independent Pixels)

화면의 크기를 기준으로 표시. 어떤 화면의 크기에서도 동일한 크기를 표시 하게 된다.
스크린의 픽셀과  dp가 160인 경우에는 1dp는 1pixel과 같다. 그러나 dpi가 240인 경우에는 1dp는 1.5pixel이 된다.

계산 공식은 아래와 같다

dp = pixel / (density / 160)

내 화면의 dp를 구하기 위해서는 아래와 같이 WindowManager를 쓰면 된다.

DisplayMetrics outMetrics = new DisplayMetrics();    getWindowManager().getDefaultDisplay().getMetrics(outMetrics);

int sum = outMetrics.densityDpi;




sp (Scale-independent Pixels)

dp의 비슷하다. 다만 사용자가 선택한 글꼴 크기에 의해 크기가 조절된다.




pt

1/72 인치 기반의 물리적 화면 사이즈, 인쇄에서 쓰이던 크기, 안드로이드 화면에서는 잘 사용되지 않는다.



px (Pixels)

스크린의 실제 픽셀 단위를 사용. 실제 크기나 밀도와 상관 없음




mm (Millimeters)

화면의 물리적 사이즈 기반으로 밀리미터를 사용



in (Inches)

화면의 물리적 사이즈 기반으로 인치를 사용




비교표



저해상도 화면 고해상도 화면에 같은 크기
물리적 넓이 1.5 인치 1.5 인치
dpi (Dots Per Inch) 160 240
px (Pixels) 240 360
밀도 (기본값 160) 1.0 1.5
dip 또는 dp (Density-independent Pixels) 240 240
sip 또는 sp
(Scale-independent pixels)
사용자 폰트 설정 사이즈 따름 동일
px (Pixels) 40픽셀을 1인치에 표시 40픽셀을 0.66인치에 표시
mm (Millimeters) 1 밀리미티 1밀리미티
in (Inches) 1 인치 1인치

참고로 아래는 DPI의 치수를 편하게 계산해 주는 사이트 입니다.

http://members.ping.de/~sven/dpi.html  
댓글
  • 프로필사진 스페이스차일드 잘 보고 갑니다^^ 2011.10.20 15:38 신고
  • 프로필사진 스페이스차일드 아, 그런데, 실제로 안드로이드 프로그래밍에서
    어떤 치수체계를 사용하는게 좋을까요?
    2011.10.20 15:40 신고
  • 프로필사진 신규하 dp(dip)가 제일 많이 쓰입니다. 2011.10.23 20:01 신고
  • 프로필사진 스페이스차일드 감사합니다^^* 2011.10.23 22:52 신고
  • 프로필사진 으음..? 그런데, 아래 표에서 pixel에 관한 내용이 두 개가 있잖아요? 저해상도에서 1.5인치의 픽셀은 240인데 왜 40픽셀을 1인치에 표시하나요? 160픽셀을 1인치에 표시해야 하는 거 아닌가요? 2012.10.23 12:45
  • 프로필사진 신규하 흠... 맞습니다.
    표에 대한 정의가 좀 애매해서 그런가 보네요 ^^;;
    오해를 불러 일으킨것 같네요..
    40픽셀을 1인치에 표시 한다면, 40픽셀을 0.66인치에 표시 한다는 내용이였습니다.
    2012.10.30 10:26 신고
  • 프로필사진 으음..? dp를 사용하면 화면의 물리적 크기가 다른 장치에서는 곤란하지 않나요?
    예를 들면, 1.5 인치 화면에 꽉 차게 만들어 놓은 프로그램은
    2인치 화면의 스마트폰에서 실행시켜도 1.5인치만큼의 크기만 사용하게 되지 않나요?
    2012.10.23 12:49
  • 프로필사진 신규하 예... 일반적으로는 물지적 크기로 하는 것은 다른 디바이스에서도
    비슷한 크기의 효과를 주기 위해서 입니다.
    그리고, 추가적으로 배치에서 레이아웃을 함께 써서, 디바이스가 달라도.. 비슷한 출력을 할 수 있도록 합니다.
    답변이 되었으면 좋겠네요.
    2012.10.30 10:28 신고
  • 프로필사진 으음..? 이제 막 안드로이드에 입문해서 현업에 대해선 아직 잘 모릅니다.
    살짝만 가르쳐 주세요. 부탁드립니다.
    2012.10.23 12:50
댓글쓰기 폼