안드로이드 단말기의 사이즈 정보.. 다시 말해서 실제 사이즈를 가져오는 방법이 있나요?
pixel 말고요..
갤럭시탭7인치로 돌렸을때 이 단말기는 7인치다 이렇게 나오는 방법이 있을까요.
여기 저기 찾아봤는데.. 답이 안나와서 올려봅니다.
할 수 있습니다.
DisplayMetrics matrix = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(matrix);
int w = matrix.widthPixels;
int h = matrix.heightPixels;
float density = matrix.density;
float xdpi = matrix.xdpi;
float ydpi = matrix.ydpi;
float x_inch = w/xdpi;
float y_inch = h/ydpi;
double display = Math.sqrt(x_inch*x_inch+y_inch*y_inch);
저렇게 하면 디스플레이 사이즈(인치)를 구할 수 있습니다.
하지만 100% 신뢰할 수 없습니다. 가끔 이상하게 나오는 단말이 있습니다.
아래는 단말별 결과 입니다.
갤럭시 탭(7인치)
w:600, h:1024, density: 1.5
xdpi:168.89351, ydpi:169.33333, x_inch:3.5525343, y_inch:6.047244
display size:7.013533996399557
넥서스원(3.7인치)
w:480, h:800, density: 1.5
xdpi:254.0, ydpi:254.0, x_inch:1.8897638, y_inch:3.1496062
display size:3.673040456663806
테이크 야누스(4.3인치)
w:540, h:960, density: 1.5
xdpi:159.48837, ydpi:160.42105, x_inch:3.3858268, y_inch:5.984252
display size:6.8756885530551255
야누스를 보시면 알겠지만 거의 7인치로 나오네요.




가로 세로 pixel 을 구한후 그 대각선 길이(픽셀)를 구한 다음에...
단말의 해상도(dip)를 구하셔서 아래 공식을 쓰면...
Inches = (Pixels) / (DPI)
이론상으론 되어야 하는데...안드로이드는 DPI에 대해서 대략적인 값
ldpi, mdpi, hdpi 밖에 정의하질 않으니...
근사치는 위 방법으로 될것도 같은데
완전 정확한 값을 얻어낼 순 없을거 같네요.