반응형
안드로이드에서는 Density-Independent Pixel 라는 DIP (DP) 값을 사용해서 UI의 크기를 표시하는데 이 값은 픽셀 값이 아닙니다.
이 개념은 안드로이드 기기의 다양한 해상도에 상관 없이 일정하게 같은 크기를 유지하기 위해 도입된 개념인데
해상도가 1280x720인 스마트폰과 2560x1440인 스마트폰 둘다 같은 dp 값이 설정되었다면 모두 같은 크기로 보여질 수 있습니다.
다만, 소스코드상에서는 이 값을 dp값이 아닌 픽셀값으로 지정해줘야 하는데
픽셀값이 스마트폰의 해상도마다 다르기 때문에 변환해주는 함수를 만들었습니다.
Pixel -> DP , DP -> Pixel 둘 다 만들었으니 대충 갖다 쓰시면 됩니다.
/**
* @param context
* @param dp
* @return
*/
public static float convertDpToPixel(Context context, float dp){
return (dp * context.getResources().getDisplayMetrics().density);
}
/**
* @param context
* @param px
* @return
*/
public static float convertPixelsToDp(Context context, float px){
return (px / context.getResources().getDisplayMetrics().density);
}
반응형