본문 바로가기

프로그래밍/안드로이드

[안드로이드 팁] dip 에서 pixel로 pixel 에서 dip로 변환하는 클래스

dip 에서 pixel로 pixel 에서 dip로 변환하는 클래스

안드로이드 개발시 dip로 해야 유연한 화면 설정이 가능합니다.
하지만 어쩔수 없는 상황에서 자바코드에서는dip 설정이 불가능할 때가 있죠.
그럴 경우 어쩔수 없이 pixel 단위를 써야하는데 요때 써먹으면 참 괜찮은 녀석입니다.

public class BetweenDipAndPx {

private static final float DEFAULT_DIP_DENSITY_SCALE = 1.5f;


// px를 dip로 변환하기

public static int DPFromPixel(int _pixel) {

Context _context = BaseApplication.getContext();

float _scale = context.getResources().getDisplayMetrics().density;


return (int) (_pixel / DEFAULT_DIP_DENSITY_SCALE * _scale);

}


// dp를 px로 변환하기

public static int PixelFromDP(int DP) {

Context _context = BaseApplication.getContext();

float _scale = _context.getResources().getDisplayMetrics().density;


return (int) (DP / _scale * DEFAULT_DIP_DENSITY_SCALE);

}

}