2014-09-18 2 views

ответ

1

Это должно работать:

Resources resources = context.getResources(); 
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); 
if (resourceId > 0) { 
    return resources.getDimensionPixelSize(resourceId); 
} 
return 0; 
+0

Благодарим u за ответ. Он не работает. Он возвращает 0, даже у устройства есть мягкая навигация. – Nas

0
DisplayMetrics metrics = new DisplayMetrics(); 

Чтобы получить метрики экрана wiithout мягкой навигации макет

getActivity().getWindowManager().getDefaultDisplay() 
        .getMetrics(metrics); 
int usableHeight = metrics.heightPixels; 

Чтобы получить метрики экрана с мягкой макете навигации

getActivity().getWindowManager().getDefaultDisplay() 
        .getRealMetrics(metrics); 
int realHeight = metrics.heightPixels; 

Когда вы вычитаете usableHeight из realHeight, вы получаете фактическую высоту расположения мягкой навигации.

Примечание: метод getRealMetrics() будет работать только в том случае, если уровень Api больше или равен 17, иначе он не будет работать. Поэтому проверьте версию сборки, прежде чем получать показатели отображения.

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