본문 바로가기

Programming/Android

[Android]안드로이드 density 구하기

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