본문 바로가기

Android

안드로이드/Android 해상도 관련 API 모음 (단말 가로/세로 해상도, Density, dp -> px, px-> dp)

/**
 * 단말기 density 구함
 * @param con
 * 사용법 : if(getDensity(context) == 2f && (float으로 형변환해서 사용 해야함.)
 */
public static float getDensity(Context con) {
    float density = 0.0f;
    density  = con.getResources().getDisplayMetrics().density;
    Log.d(TAG, "density = " + density);
    return density;
}
 
/**
 * px을 dp로 변환
 * @param con
 * @param px
 * @return dp
 */
public static int getPxToDp(Context con, int px) {
    float density = 0.0f;
    density  = con.getResources().getDisplayMetrics().density;
    Log.d(TAG, "density = " + density);
    return (int)(px / density);
}
 
/**
 * dp를 px로 변환
 * @param con
 * @param dp
 * @return px
 */
public static int getDpToPix(Context con, double dp) {
    float density = 0.0f;
    density  = con.getResources().getDisplayMetrics().density;
    Log.d(TAG, "density = " + density);
    return (int)(dp * density + 0.5);
}
 
/**
 * 단말기 가로 해상도 구하기
 * @param activity
 * @return width
 */
public static int getScreenWidth(Activity activity) {
    int width = 0;
    width = activity.getWindowManager().getDefaultDisplay().getWidth();
    Log.i(TAG, "Screen width = " + width);
    return width;
}
 
/**
 * 단말기 세로 해상도 구하기
 * @param activity
 * @return hight
 */
public static int getScreenHeight(Activity activity) {
    int height = 0;
    height = activity.getWindowManager().getDefaultDisplay().getHeight();
    Log.i(TAG, "Screen height = " + height);
    return height;
}
 
/**
 * 단말기 가로 해상도 구하기
 * @param context
 */
public static int getScreenWidth(Context context) {
    Display dis = ((WindowManager)
            context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int width = dis.getWidth(); 
    Log.i(TAG, "Screen Width = " + width);
    return width;
}
 
/**
 * 단말기 세로 해상도 구하기
 * @param context
 */
public static int getScreenHeight(Context context) {
    Display dis = ((WindowManager)
            context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int height = dis.getHeight();
    Log.i(TAG, "Screen height = " + height);
    return height;
}

참조 : http://arabiannight.tistory.com/entry/328