개발 관련/Android

[Tip] 안드로이드 코드상에서 스크린 사이즈 구분하기. (폰 타블릿 구분)

snoworca 2013. 6. 14. 01:36

다음과같은코드를이용하여코드상에서폰과태블릿을구분할수있다.

(코드상에서폰인지태블릿인지를가져올수있다.)


int screenSizeType = (/*context.*/getResources().getConfiguration().screenLayout &

Configuration.SCREENLAYOUT_SIZE_MASK);

if(screenSizeType == Configuration.SCREENLAYOUT_SIZE_XLARGE) {

// 매우  화면 사이즈, 10인치 이상 태블릿 : 갤럭시탭 10.1, 갤럭시노트10.1, 기타 등등.

}

else if(screenSizeType == Configuration.SCREENLAYOUT_SIZE_LARGE) {

//  화면 사이즈 7인치 태블릿 : 넥서스7, 갤탭기타 등등.;

}

else/* if(screenSizeType == Configuration.SCREENLAYOUT_SIZE_NORMAL ||

screenSizeType == Configuration.SCREENLAYOUT_SIZE_SMALL) */ {

 // 태블릿이아니다() : 갤럭시노트갤럭시 S, 베가옵티머스시리즈기타폰들.

}



이에대한 자세한 설명은 Configuration  대해서 설명한  Android Developer 사이트에서 확인할  있다.


  대략 요약하자면,context에서 가져온 Configuration  인스턴스 내부의 screenLayout 필드 값을 SCREENLAYOUT_SIZE_MASK 으로 인코딩하여 화면 사이즈 종류를 가져올  있다.  


  Android Developer 페이지에 나와있는 설명을 대충 요약하면 이렇다.


SCREENLAYOUT_SIZE_SMALL

              설명 : 소형 화면저밀도(low-density) QVGA  비슷한 크기. -  싸고 화면 작은 저가 폰들이  범주에 속하

 는  같다.

              레이아웃 사이즈 :  최소 320 x 426 dp.

               :  low-density QGVA,  high-density VGA.


SCREENLAYOUT_SIZE_NORMAL

 설명 :  일반 화면,  medium-density HVGA  비슷한 크기. -  일반적인 갤럭시 노트 포함.

 레이아웃 사이즈 :  최소 320x470 dp.

  :   low-density WQVGA , medium-density HVGA , high-density WVGA.


SCREENLAYOUT_SIZE_LARGE

 설명 :  대형 화면,  medium-density VGA  비슷한 크기.  - 넥서스7 갤탭등.

 레이아웃 사이즈 :  최소 480x640 dp.

  :  medium-density VGA, medium-density  WVGA


SCREENLAYOUT_SIZE_XLARGE

 설명 :  (?)대형 화면,  medium-density VGA  비슷한 크기 - 현재까지는 갤탭 10.1 갤노트 10.1, 기타10인 처의 타블릿등등.

 레이아웃 사이즈 :   720x960 dp 이상.

API 9 부터추가. (진저브레드부터사용할수있다.)