DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); float density = dm.density;
위와 같은 공식으로 density를 구할 수 있다.
* density 란??
px 와 dp 간의 비율이라고 볼 수 있다.
예를 들어, 320dpi의 안드로이드 폰이 있다면, 1dp 는 2px와 같다.
아래와 같은 method를 만들어서 사용하면, 코드 상에서 화면 UI 또는 크기를 정할 필요가 있을때,
단말 별로 DPI에 맞게 가변적으로 표시할 수 있다.
/** * Pixel을 DP로 변경해주는 메서드 * @param dp * @return */ public static int getPxFromDp(float dp) { int px = 0; Context appContext = WLBApplication.getApplication(); px = (int) (dp * appContext.getResources().getDisplayMetrics().density); return px; }
* 공식
dips = pixels * 160 / density
1 / 160 * density * dp = px
'Programming > Android' 카테고리의 다른 글
[Android] 패키지명으로 activity 호출하기 (0) | 2012.07.23 |
---|---|
[안드로이드] 배포시 필수 팁. (0) | 2012.07.14 |
[Android]안드로이드 SDK 버전 체크하는 방법 (0) | 2012.07.03 |
[Android]Table Scroll(Vertical, Horizontal 스크롤 동시에 하기) (1) | 2012.04.20 |
[Manifest]android SD카드에 어플 설치하기 (0) | 2012.03.21 |