PiXEL to DP, DP to PIXEL

-- Android 2015. 7. 16. 10:08
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
코드로 넓이나 마진 등의 수치를 지정할 때 Pixel이나 DP의 단위로 지정해야 해서 단위를 변경해야 할 경우가 있다.
필자의 경우 아래의 함수들을 사용하고 있다.


1. PIXEL to DP

public static int getPixelToDp(Context context, int pixel) {
    float dp = 0;
    try {
     DisplayMetrics metrics = context.getResources().getDisplayMetrics();
     dp = pixel / (metrics.densityDpi / 160f);
    } catch (Exception e) {

    }
    return (int) dp;
}


2. DP to PIXEL

public static int getDpToPixel(Context context, int DP) {
    float px = 0;
    try {
     px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DP, context.getResources().getDisplayMetrics());
    } catch (Exception e) {

    }
    return (int) px;
}

public static int getDpToPixel(Context context, float DP) {
    float px = 0;
    try {
     px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DP, context.getResources().getDisplayMetrics());
    } catch (Exception e) {

    }
    return (int) px;
}

public static int getDpToPixel(Context context, double DP) {
    float px = 0;
    try {
     px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) DP, context.getResources()
            .getDisplayMetrics());
    } catch (Exception e) {

    }
    return (int) px;
}
posted by 어린왕자악꿍