2012-04-15 3 views
2

У меня возникла проблема в том, что мне нужна высота планшета Android-планшета. Это та же проблема, что и у here, но я не могу использовать этот ответ, потому что он дает мне тот же размер, что и в DisplayMetrics. В обоих случаях я получаю разрешение с этим баром, уже рассчитанным в нем. (Эта проблема не появляется на моем смартфоне, как раз на моем планшете).Размер системного бара на планшетах Android android

ответ

0

Заканчивать этот ответ здесь: https://stackoverflow.com/a/8367739/807499

Это дает полную высоту экрана. Затем вы можете уменьшить размер, заданный DisplayMetrics, или размер вашего корневого макета.

11
// status bar (at the top of the screen on a Nexus device) 
public static int getStatusBarHeight(Context context) { 
    Resources resources = context.getResources(); 
    int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android"); 
    if (resourceId > 0) { 
     return resources.getDimensionPixelSize(resourceId); 
    } 
    return 0; 
} 

// navigation bar (at the bottom of the screen on a Nexus device) 
public static int getNavigationBarHeight(Context context) { 
    Resources resources = context.getResources(); 
    int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); 
    if (resourceId > 0) { 
     return resources.getDimensionPixelSize(resourceId); 
    } 
    return 0; 
} 
+0

оба метода точно такие же: – Frank

+2

@Frank - разные значения передаются как первый аргумент 'getIdentifier()'. –

+0

Очень приятно :) ... спасибо – dijipiji

0

Chris Banes упомянул об этом в недавнем разговоре Droidcon. Весь разговор очень важен, но вот ссылка на часть, которая отвечает на ваш вопрос (для всех форм-факторов, включая планшет).

https://youtu.be/_mGDMVRO3iE?t=1093

Это правильный способ получить строки состояния и панели навигации, размеры: setOnApplyWindowListener

Я надеюсь, что это помогает!

Смежные вопросы