본문 바로가기

Android/해상도

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


 < 개발 환경 >  
   작성일 : 2013.01.24
   OS 설치 버전 : Windows7 32bit  
   SDK 설치 버전 : 안드로이드 SDK 4.2 (젤리빈) / API LEVEL : 17  
   ADT 설치 버전 : 21   
   Java 설치 버전 : JDK 1.6.0_20 / JRE6 
   이클립스 설치 버전 : Indigo
   테스트단말 : 삼성 갤럭시 S2 4.0.4 (아이스크램 샌드위치)   

 < 프로젝트 적용 > 
   API LEVEL : 8  
   minSdkVersion : 8 
   targetSdkVersion : 8  
   Java Compiler Level : 1.6  
   Text file encoding : UTF-8







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





해상도 관련 API 모음 입니다.


	
	
	/**
     * 단말기 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;
	}




유용하게 사용하시기 바랍니다.^^