안드로이드의 dp, px 간의 관계 및 개념 분석

1265 단어
핸드폰 사이즈: 화면 대각선의 길이, 단위는 인치(2.54cm)
핸드폰 해상도: 화면에 표시할 수 있는 픽셀의 수량은 일반적으로 긴 방향에서 수량 * 넓은 방향에서 수량으로 표현한다
휴대전화의 픽셀 밀도:pixels per inch, 또는 Ppi라고도 부른다. 즉, 인치당 화면에 표시할 수 있는 픽셀 수, 픽셀 밀도가 클수록 화면의 디테일이 풍부해진다.계산: 픽셀 밀도 = {1+√[(길이 픽셀 수-1)2+(너비 픽셀 수-1)2]}/화면 크기
DPI: Dots Per Inch (인치당 인쇄되는 점 또는 선 수) 의 줄임말로 프린터의 인쇄 해상도를 표시하지만, 때로는 ppi 대신 dpi를 사용하기도 한다.
휴대전화의 밀도: 덴시티, 160dpi를 기준으로 휴대전화의 화소 밀도와 기준의 비율.픽셀 밀도가 160인 경우 Density 는 1
상용 dpi 표지 (자모)
상용 dpi 표지 (숫자)
휴대폰 집적도(density)
ldpi
120dpi
0.75
mdpi
160dpi
1.0
hdpi
240dpi
1.5
xhdpi
320dpi
2.0
px:pixels(픽셀), 1px는 화면의 물리적 픽셀점 크기(길이)입니다.
dp/dip: device-independent pixels(장치는 픽셀과 무관), density를 기반으로 한 추상적인 단위, 160dpi의 화면(핸드폰 밀도가 1이면), 1dp=1px
정의: 1dp=(dpi/160)px 즉 1px = 1/density dp 즉: 1dp = density px
  • 160dpi:1dp = 1px
  • 120dpi:1dp = 0.75px
  • 320dpi:1dp = 2px

  • pp값을 px로 바꾸는 방법은 다음과 같다. 휴대전화 밀도:density=x, dp의 값이 y로 1dp=densitypx에서 ydp=yxpx를 알 수 있기 때문에 결과는 yx이다.
    px값을 dp로 바꾸는 방법은 다음과 같다. 휴대전화 밀도:density=x, px의 값은 y가 1px=1/density dp에서 ypx=y/xdp를 알 수 있기 때문에 결과는 y/x이다.
    그래서 다음과 같은 방법이 생겼다.
    왜 0.5f를 넣어야 돼요?자바에서 플로트를 int로 강제로 변환할 때 소수 부분을 직접 잃어버리고 0.5f를 더하면 반올림 작용을 하여 오차를 줄일 수 있기 때문이다.

    좋은 웹페이지 즐겨찾기