안드로이드

안드로이드 디바이스 DPI 구하는 방법, android device check dpi

알통몬_ 2017. 9. 11. 16:13
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


이번 포스팅 굉장히 짧게 지나갑니다 ㅋㅋㅋ

바로 안드로이드 디바이스의 dpi를 구하는 방법에 대해 알아볼려고하는데요.

코드 몇 줄이면 로그로 확인 가능합니다.

DisplayMetrics metrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(metrics);
Log.d("device dpi", "=>" + metrics.densityDpi);

정말 간단하죠??

이게 어디에 필요할까? 라는 생각이 드실 수도 있는데요.

레이아웃 구성할 때 픽셀값으로 padding 이나 margin을 주어야 한다면

xml에서가 아니라 코드로 주는 방법을 사용하는데요.

xml에서 px을 써도 되지만 경고가 뜨죠 ㅎㅎ 전 경고뜨는 걸 별로 안좋아해서

그냥 코드로 작성해요.

그래서 아래처럼 사용할 수도 있습니다,

public FrameLayout.LayoutParams setFrameMargins(FrameLayout frameLayout, Activity context) {
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) frameLayout.getLayoutParams();
int margin = 0;
DisplayMetrics metrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(metrics);
Log.d("device dpi", "=>" + metrics.densityDpi);
if (metrics.densityDpi<=160) { // mdpi
margin = 12;
} else if (metrics.densityDpi<=240) { // hdpi
margin = 18;
} else if (metrics.densityDpi<=320) { // xhdpi
margin = 24;
} else if (metrics.densityDpi<=480) { // xxhdpi
margin = 36;
} else if (metrics.densityDpi<=640) { // xxxhdpi
margin = 48;
}
params.setMargins(margin, margin, margin, margin);

return params;
}


이상입니다.

반응형