2013-12-12 2 views
2

이 두 가지는 수학 측면에서 똑같습니까? 그들은 같은 결과를 산출합니까?getDisplayMetrics(). 밀도 대 dp

자바 :

pixel=10; 
margin=px * getResources().getDisplayMetrics().density; 
layout_param.topMargin=margin; 

XML :

android:layout_marginTop="10dp"

답변

1

네, 그들이, getDisplayMetrics() 내부의 밀도는 다음과 딥 장치에 사용되는 하나 documentation입니다 :

공용 플로트 밀도

API 레벨 1에 추가됨 디스플레이의 논리적 밀도. DIP 중 하나가 약 160 dpi 화면 (예 : 240x320, 1.5 "x2"화면)에서 1 픽셀 인 시스템의 디스플레이의 기준선을 제공하는 Density Independent Pixel 단위의 배율 팩터입니다 ( ). 따라서 160dpi 화면에서이 밀도 값은 1이됩니다. 120 dpi 화면에서는 .75입니다. 등

이 값은 정확히 디스플레이 dpi로 총 변화에 기초하여 단계 전체 UI 의 크기를 조절하는 데 사용된다 오히려 xdpi 및 ydpi 의해 제시된 (실제 화면 크기를 수행하지 않지만. 들어 예를 들어, 240x320 화면의 너비가 1.8 ", 1.3"등인 경우에도 밀도는 1이됩니다. 그러나 화면 해상도가 320x480으로 증가하지만 화면 크기가 1.5 "x2"로 유지되면 밀도는 증가 (아마 1.5).