Как получить доступную высоту в ландшафте? - PullRequest
1 голос
/ 12 октября 2011

У меня есть макет с изображением.Это изображение должно иметь соотношение 4/3.В портретном режиме я получаю ширину экрана, затем вычисляю высоту и устанавливаю размеры imageView.

int[] tailles       = new int[2];
DisplayMetrics dm   = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int widthScreen     = dm.widthPixels;
tailles[0]          = widthScreen;
tailles[1]          = (tailles[0]*3)/4;

Эта часть прекрасно работает.

В ландшафтном режиме мне нужно установить ширину imageViewв зависимости от доступной высоты.Поэтому мне нужно получить высоту экрана минус строка состояния / уведомлений.

Я видел значение 48px для бара в этот вопрос .Это стандартный размер?

Какое лучшее решение для получения доступной высоты независимо от используемого устройства?

Ответы [ 2 ]

2 голосов
/ 12 октября 2011
    Display d = ((Activity) mContext).getWindowManager()
            .getDefaultDisplay();
    int h = d.getHeight();
    int w = d.getWidth();

в портретной ориентации h> w и в альбомной ориентации w> h

0 голосов
/ 12 октября 2011

Если вы создаете Activity, то вам нужно иметь какой-то макет.Получить его корневой компонент и получить его размер (getWidth, getHeight).Это будет доступная ширина и высота без учета строки состояния.

...