Окно Пейзаж Измерение Android - PullRequest
1 голос
/ 14 января 2012

У меня были проблемы с получением размеров экрана для Android. Я не хочу, чтобы размер строк состояния включался в мои измерения. Приложение, которое я разрабатываю, должно быть постоянно в ландшафтном режиме. Я тестировал с Android-эмулятором сота. Когда я получаю размеры, используя код в Как я могу получить ширину и высоту экрана системы Android Honeycomb? Я получаю 1280x800. Мне было любопытно, почему человек в связанном вопросе вычитает размер строк состояния, в то время как мой не работает таким образом. Кроме того, как я могу сделать так, чтобы размер строк состояния фактически вычитался? Если понадобятся какие-либо дополнительные сведения, я буду периодически проверять их наличие. Спасибо!

1 Ответ

1 голос
/ 16 января 2012

Хорошо!Я наконец-то понял.Я собрал код из нескольких разных источников, поэтому я не знаю точно, почему все работает так, как они.Вот соответствующий код.

Rect rect = new Rect();
Window win = getWindow();
win.getDecorView().getWindowVisibleDisplayFrame(rect);
screenWidth = Math.abs(rect.left-rect.right);
screenHeight = Math.abs(rect.top-rect.bottom);

Однако есть одна оговорка.Этот код НЕ БУДЕТ работать в методе onCreate ().Вместо этого поместите его в

public void onWindowFocusChanged (boolean hasFocus)

Это должно решить любые проблемы с получением размеров окна!

РЕДАКТИРОВАТЬ: Я считаю, что это решение должно работать и в портретном режиме.Я не проверял это все же.

...