Android, Honeycomb и ICS - сообщать размер экрана без нижних кнопок - PullRequest
5 голосов
/ 20 декабря 2011

Хорошо, в сотах у меня есть некоторые функции, которые определяют размер экрана. Это иногда используется, чтобы динамически делать некоторые вещи пользовательского интерфейса. Но проблема в том, что он включает в себя нижнюю панель с кнопками Android, которая вычитается из вашего доступного размера экрана.

Функция Android Display может возвращать правильную функцию (например, дисплей 1280x800 вернет 1280x740 в качестве дисплея, это дисплей, не включающий нижние кнопки Android), но функция javascript в веб-просмотре будет определять только этот фактический размер, так что 1280x800 получает 1280x800, что неверно, потому что там есть нижняя полоса.

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

1 Ответ

3 голосов
/ 20 декабря 2011

Я не уверен, что это лучший способ, но вот как я это делаю (на Android 2.2, но это также должно работать на 3.x)

  • Я создаю LinearLayout (FILL_PARENT)
  • Я добавляю к нему свое собственное представление (например, подкласс TextView) и переопределяю в нем onMeasure
  • в onMeasure я вызываю getParent (). GetWidth () и getParent (). GetHeight ()

Возможно, это не тот ответ, который вы искали / надеялись, но, по крайней мере, он работает для меня.

...