Android px, sp, dp, sp 사이의 관계

1753 단어
먼저 기본적인 개념을 말해 봅시다.
핸드폰 사이즈: 화면 대각선의 길이, 단위는 인치(2.54cm) 핸드폰 해상도: 화면이 표시할 수 있는 픽셀의 수량, 일반적으로 긴 방향의 수량, 넓은 방향의 수량으로 표현한다. 즉, 흔히 말하는 19201080 핸드폰의 픽셀 밀도 ppi(pixels per inch): 즉 인치당 화면이 표시할 수 있는 픽셀 수, 픽셀 밀도가 클수록화면의 디테일이 풍부해질수록계산: 픽셀 밀도 = {1+√[(길이 픽셀 수-1)2+(너비 픽셀 수-1)2]}/화면 크기 dpi(Dots Per Inch)의 줄임말: 프린터 인쇄 해상도를 나타내는 데 쓰이지만 때로는 ppi 휴대전화의 밀도 덴시티를 dpi로 대체하기도 한다. 160dpi를 기준으로 휴대전화의 픽셀 밀도와 기준의 비율을 가리킨다.즉 픽셀 밀도가 160일 때 덴시티가 1인 핸드폰의 밀도: 덴시티는 160dpi를 기준으로 핸드폰의 픽셀 밀도와 기준의 비례를 나타낸다.픽셀 밀도가 160인 경우 Density 는 1
px: pixel 픽셀, 화면에 표시할 수 있는 최소 단원입니다.pt:point 파운드수 1파운드는 1/72인치입니다. 보통 pt는 글씨체의 단위로 사용됩니다(인쇄업계에서 사용)dpi:density per inch 인치당 픽셀 밀도 dp:dip density independent pixel 밀도는 픽셀과 무관합니다. 픽셀 밀도가 다른 화면에서 표시 비율은 일치합니다. sp:scaled pixels는 신축 가능한 픽셀이라는 뜻의 dp입니다.sp는 휴대폰에 따라 적합
  dpi  (  )   dpi  (  )     (density)                    
 ldpi                   120dpi             0.75
 mdpi                   160dpi             1.0
 hdpi                   240dpi             1.5
 xhdpi                  320dpi             2.0

계산 방법:
정의: 1dp=(dpi/160)px 즉 1px = 1/density dp 즉: 1dp = density px
160dpi:1dp = 1px 120dpi:1dp = 0.75px 320dpi:1dp = 2px dp 값이 px로 변환될 만한 방법은 다음과 같다. 휴대전화 밀도:density = x, dp 값이 y라고 가정하면 1dp = density px에서 ydp = yx px로 알 수 있기 때문에 결과는 yx 이다
px값을 dp로 바꾸는 방법은 다음과 같다. 휴대전화 밀도:density=x, px의 값은 y가 1px=1/density dp에서 ypx=y/xdp를 알 수 있기 때문에 결과는 y/x이다.
화면 크기 가져오기
double y = Math.pow(outMetrics.heightPixels / outMetrics.ydpi, 2);
double screenInches = Math.sqrt(x + y); //    (  )
System.out.println("width : " + screenInches);

요약:
안드로이드에서 문자의 사이즈는 일률적으로 sp 단위를 사용하고 문자가 아닌 사이즈는 일률적으로 dp 단위를 사용한다.예를 들어 textSize="16sp",layoutwidth="60dp"

좋은 웹페이지 즐겨찾기