투케이2K

19. (AndroidStudio/android/java) 실제 모바일 기기 사이즈 확인 실시 - DisplayMetrics, DP 사이즈 확인 본문

Android

19. (AndroidStudio/android/java) 실제 모바일 기기 사이즈 확인 실시 - DisplayMetrics, DP 사이즈 확인

투케이2K 2021. 1. 22. 16:12

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

//TODO ==== [화면 사이즈 확인 전역 변수] ====
String MobileSizeData = "";
String WidthSizeData = "";
String HeightSizeData = "";



//TODO ======== 화면 사이즈 확인 =========
Log.d("---","---");
Log.d("//===========//","===================");
Log.d("","\n"+"[A_MobileSize > 실제 모바일 기기 사이즈 확인 실시]");
Log.d("//===========//","===================");
Log.d("---","---");
try {
	MobileSizeData = getMobileSize();
	if(MobileSizeData.equals("W")){ //TODO 시계
		
	}
	else if(MobileSizeData.equals("S")){ //TODO 작은 화면 (S6 기기)
		
	}
	else if(MobileSizeData.equals("M")){ //TODO 중간 화면 (NOTE5 기기)
		
	}
	else if(MobileSizeData.equals("L")){ //TODO 큰 화면 (Q9 기기)
		
	}
	else if(MobileSizeData.equals("XL")){ //TODO 엄청 큰 화면 (탭 종류)
		
	}
	else{
		
	}
}
catch (Exception e){
	e.printStackTrace();
}



//TODO ====== [모바일 화면 사이즈 확인 메소드] ========
public String getMobileSize(){
	String size = "";
	try {
		Display display = getWindowManager().getDefaultDisplay();
		DisplayMetrics outMetrics = new DisplayMetrics ();
		display.getMetrics(outMetrics);
		float density = getResources().getDisplayMetrics().density;
		float dpHeight = outMetrics.heightPixels / density;
		float dpWidth = outMetrics.widthPixels / density;
		Log.d("---","---");
		Log.w("//===========//","===================");
		Log.d("","\n"+"[getMobileSize() 메소드 실행 : 실제 모바일 DP 사이즈 확인]");
		Log.d("","\n"+"["+"디바이스 - "+String.valueOf("Android")+" / Android OS - "+String.valueOf(Build.VERSION.RELEASE)+"]");
		Log.d("","\n"+"["+"모델 - "+String.valueOf(Build.MODEL)+" / 제조사 - "+String.valueOf(Build.MANUFACTURER)+"]");
		Log.d("","\n"+"["+"가로 - "+String.valueOf(dpWidth)+" (DP)"+" / 세로 - "+String.valueOf(dpHeight)+" (DP)"+"]");
		int dpWidthValue = (int)dpWidth;
		int dpHeightValue = (int)dpHeight;
		/**
		 *    [장치]   [가로]   [세로]
		 * 1) Watch =  250dp    250dp
		 * 2) mobile = 320dp    569dp (s6)
		 * 3) mobile = 400dp    730dp (note 5)
		 * 4) mobile = 400dp    810dp (note 10 / LG Q9)
		 * 5) mobile = 800dp    1280dp (Tab)
		 * 6) Tablet = 960dp    600dp (Tab)
		 *             1280dp   800dp
		 */
		if(dpHeightValue < 320){ //0 ~ 319
			size = "W";
		}
		else if(dpHeightValue < 660){ //320 ~ 659
			size = "S";
		}
		else if(dpHeightValue < 750){ //660 ~ 749
			size = "M";
		}
		else if(dpHeightValue < 900){ //750 ~ 899
			size = "L";
		}
		else if(dpHeightValue < 1600){ //900 ~ 1599
			size = "XL";
		}
		else{
			size = "NO";
		}
		Log.d("","\n"+"["+"화면 사이즈 - "+String.valueOf(size)+"]");
		Log.w("//===========//","===================");
		Log.d("---","---");
		WidthSizeData = String.valueOf((int)dpWidth);
		HeightSizeData = String.valueOf((int)dpHeight);
	}
	catch (Exception e){
		e.printStackTrace();
	}
	return size;
}

/* =========================== */

/* =========================== */

[요약 설명]

/**

* [장치] [가로] [세로]

* 1) Watch = 250dp 250dp

* 2) mobile = 320dp 569dp (s6)

* 3) mobile = 400dp 730dp (note 5)

* 4) mobile = 400dp 810dp (note 10 / LG Q9)

* 5) mobile = 800dp 1280dp (Tab)

* 6) Tablet = 960dp 600dp (Tab)

                 1280dp 800dp

*/

/* =========================== */

반응형
Comments