안녕하세요~
제가 지금 어플을 하나 제작하고 있는데요~ 문제점이 있어 질문을 드립니다.
1px 을 mm 로 환산하는 문제인데요..
이게 안드로이드 같은 경우에는 해상도가 정말 다양하고 실질적인 dpi가 틀리기 때문에, 
구하기가 쉽지가 않더라구요..

제가 구한 방법은 다음과 같습니다.

DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
double deviceDPI = displayMetrics.densityDpi;
double mm = 25.4f / deviceDPI;

실제 1인치의 mm길이가 25.4mm 이기 때문에, 여기에다가 단말기의 dpi를 나누어 주게 되면 1px의 mm를 구할수 있을거라 생각했습니다.

그런데 예를들어, 갤럭시U 단말기(해상도 480*800) 같은 경우에 mm로 환산을 하면
0.10583333174387614mm 가 나오는데요~ 
이를 증명하기 위해 0.10583333174387614mm * 480(가로픽셀) 을 곱하면, 
실제 단말기의 가로 사이즈인 48mm가 아니라 52mm 로 나오게 됩니다.

이 때문에, 한번 더 고민하여 생각한 방법은 실제 가로 dpi와 세로 dpi를 따로 구해 증명을 해보았습니다.
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
double deviceDPI = displayMetrics.xdpi;
double mm = 25.4f / deviceDPI;

똑같이, 갤럭시U의 실 가로 픽셀을 구하여 위와 같은 방법으로 증명을 해보려 하였으나,
25.4 / 실가로dpi(234.46153259277344) = 1px 당 약 0.10583333174387614mm 정도가 나옵니다
실 가로사이즈에 비교했을때도, 실제는 48mm 지만 계산방식으로 하게되면 52mm 정도가 나옵니다.

앱 성격상 1px의 정확한 mm 를 구해야 하는 상황입니다.

해상도별로 1px의 정확한 mm를 구할 수 있는 공식이나 조언 부탁드립니다. 감사합니다.