Ошибка JavaScript в веб-браузере Android - PullRequest
0 голосов
/ 01 января 2012

Я использую веб-представление Android для отображения некоторого html-кода с javascript, выполняемым, когда DOM готов;но screen.width дает неправильное значение, если только я не использую некоторое время ожидания, прежде чем запрашивать его (на эмуляторах и реальных устройствах)

Проблема в устройствах высокой / низкой плотности.Например, устройство размером 480 X 800 с высокой плотностью приведет к экрану размером 320 x 533 (оно делит на 1,5 как по ширине, так и по высоте экрана), а для экрана размером 240 x 320 с низкой плотностью оно дает 320 x 426 (опять же, оно делится на0,75 по ширине и высоте).

Когда я применяю некоторые CSS и устанавливаю ширину тела на 100%, она мигает, поскольку ширина тела устанавливается на 320 пикселей, а через полсекунды она устанавливается снова,на этот раз к реальному размеру 480px.

Использование таймера для запроса ширины и высоты экрана перед применением некоторого css недопустимо, поскольку на разных устройствах требуются разные интервалы времени (300 мс, 500 мс). Как я могу применить css для экрана разных размеров

эмуляторы:

FWQVGA (240×432, low density, normal screen)
HVGA (320×480, medium density, normal screen)
WVGA800 (480×800, high density, normal screen)

Есть ли какое-нибудь решение этой проблемы?

1 Ответ

2 голосов
/ 08 февраля 2012

По умолчанию WebView масштабирует веб-страницу так, чтобы она отображалась в размере, соответствующем виду по умолчанию на экране средней плотности.Таким образом, он применяет 1,5-кратное масштабирование на экране с высокой плотностью (поскольку его пиксели меньше) и 0,75-кратное масштабирование на экране с низкой плотностью (потому что его пиксели больше).

Вы можете прочитать это: «Создание веб-сайтов»страницы для поддержки другого экрана "@ http://developer.android.com/reference/android/webkit/WebView.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...