public static int SCREEN_WIDTH = 0;

public static int SCREEN_HEIGHT = 0;


/**

* 소프트키를 포함한 화면 전체해상도를 가져온다.

* @param context

*/

public static void setScreenInfo(Context context){

if(Build.VERSION.SDK_INT>=14)

{

android.view.Display display = ((WindowManager) context.getSystemService(context.WINDOW_SERVICE)).getDefaultDisplay();

Point realSize = new Point();

try {

Display.class.getMethod("getRealSize", Point.class).invoke(display, realSize);

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

SCREEN_WIDTH=realSize.x;

SCREEN_HEIGHT=realSize.y;

}else{

DisplayMetrics dmath=context.getResources().getDisplayMetrics(); // 화면의 가로,세로 길이를 구할 때 사용합니다.

SCREEN_WIDTH=dmath.widthPixels;

SCREEN_HEIGHT=dmath.heightPixels;

}

}


/**

* 소프트키를 미포함한 화면 전체해상도를 가져온다.

* @param context

*/

public static void setNoSoftKeyScreenInfo(Context context){

DisplayMetrics dmath=context.getResources().getDisplayMetrics(); // 화면의 가로,세로 길이를 구할 때 사용합니다.

SCREEN_WIDTH=dmath.widthPixels;

SCREEN_HEIGHT=dmath.heightPixels;

}


/**

* 소프트키 존재 여부를 가져온다.

* @param context

*/

public static boolean isScreenSoftKey(Context context) {

boolean isKey = false;

if (Build.VERSION.SDK_INT >= 14) {

boolean hasMenuKey = ViewConfiguration.get(context)

.hasPermanentMenuKey();

boolean hasBackKey = KeyCharacterMap

.deviceHasKey(KeyEvent.KEYCODE_BACK);


if (!hasMenuKey && !hasBackKey) {

isKey = true;

} else {

isKey = false;

}

} else {

isKey = false;

}

return isKey;

}

728x90
반응형

'Android' 카테고리의 다른 글

안드로이드 코드에서 마진 주기  (0) 2016.06.22
안드로이드 Px to Dip  (0) 2016.06.22
안드로이드 리스트 뷰 만들기  (0) 2016.01.25
버튼 Press 정의  (0) 2016.01.12
안드로이드 Menu 객체 만들기  (0) 2016.01.05

+ Recent posts