2016-03-12 1 views
0

Как рассчитать размер экрана в точности с учетом части Edge? Теперь я разрабатываю пользовательскую клавиатуру, и когда она становится видимой, ее размер рассчитывается программно на основе размера экрана.Как рассчитать ScreenSize точно в соответствии с соображениями Samsung Galaxy Edge в android

Какую функцию я использовал, чтобы вычислить размер экрана, как показано ниже.

public static Point getDimentionalSize(Context context) 
{ 
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
    Display display = wm.getDefaultDisplay(); 
    int realWidth; 
    int realHeight; 

    if (Build.VERSION.SDK_INT >= 17){ 
     //new pleasant way to get real metrics 
     DisplayMetrics realMetrics = new DisplayMetrics(); 
     display.getRealMetrics(realMetrics); 
     realWidth = realMetrics.widthPixels; 
     realHeight = realMetrics.heightPixels; 

    } else if (Build.VERSION.SDK_INT >= 14) { 
     //reflection for this weird in-between time 
     try { 
      Method mGetRawH = Display.class.getMethod("getRawHeight"); 
      Method mGetRawW = Display.class.getMethod("getRawWidth"); 
      realWidth = (Integer) mGetRawW.invoke(display); 
      realHeight = (Integer) mGetRawH.invoke(display); 
     } catch (Exception e) { 
      //this may not be 100% accurate, but it's all we've got 
      realWidth = display.getWidth(); 
      realHeight = display.getHeight(); 
      Log.e("Display Info", "Couldn't use reflection to get the real display metrics."); 
     } 

    } else { 
     //This should be close, as lower API devices should not have window navigation bars 
     realWidth = display.getWidth(); 
     realHeight = display.getHeight(); 
    } 

    return new Point(realWidth, realHeight); 
} 

Эта функция вычисляет размер экрана точно в пикселях. Но когда я пробовал его на Samsung Galaxy Note Edge, приведенная ширина экрана составляет Edge part. Я хотел бы исключить его из размера экрана. (если портрет, от ширины, в противном случае, от высоты)

Какое решение?

ответ

0

Вы можете попробовать это

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels; 
+0

Спасибо за ваш быстрый ответ. Я пробовал, но он тоже не работает. –