2013-02-27 3 views
2

У меня есть приложение Flex Mobile, которое использует StageWebView для загрузки локального HTML-файла.Проблемы масштабирования/масштабирования с помощью StageWebView и Android

Я отлаживал его на своем ПК, используя встроенный эмулятор (имитирующий экран Galaxy S3, 1280x720, 320 точек на дюйм) и на моем фактическом S3.

Приложение имеет вид StageWebView viewPort, установленный на прямоугольник, который использует stageHeight и stageWidth. (1280x720)

На ПК он полностью отображает HTML-файл (HTML-файл имеет фоновое изображение 1280x720) и прокрутки нет.

На моем мобильном телефоне, однако, веб-просмотр показывает, что HTML-файл «увеличен» (я говорю, увеличен, но вы не можете уменьшить масштаб!), И мне нужно прокрутить, чтобы просмотреть весь контент. Содержимое отображается в два раза по размеру (если я установил фоновое изображение на 360x640, оно подходит на экране телефона без прокрутки)

Почему эмулятор, имеющий одинаковое разрешение и DPI, отображает контент по-разному?

Что еще более важно, почему мой телефон выглядит «масштабируемым» в файле HTML и заставляет меня прокручивать? Сопоставление контента и разрешения телефона, но StageWebView, похоже, не понимает.

Я нашел этот пост, click me, который, кажется, предлагает ошибку, однако парень упоминает о своей проблеме, когда он не использует метатег viewport, который я использую!

Кто-нибудь знает, как я могу исправить свои проблемы с масштабированием, и, надеюсь, у меня будет хороший масштаб приложения Flex на разных устройствах и что StageWebView отобразит мой HTML-файл правильно?

ответ

0

Я стучал головой о стену с той же проблемой. На Xoom (Android 3) локальный файл отображался отлично, но на Nexus (Android 4.2.2) контент не отображался корректно с stagewebview.

Моим решением было изменить href тега css. См. Здесь:

How to reference local css files in a static webview window in android dev?.

Так что в моем локальном HTML-файл, он изменился:

<link rel="stylesheet" href="file:///styles/style.css" type="text/css" /> 
2

Если вы используете мета видового экрана на андроид убедитесь, чтобы установить цель-densitydpi значение

<meta name="viewport" content="width=device-width, user-scalable=no, target-densitydpi=device-dpi"> 

Или если можете, используя css zoom, где значение масштабирования относится к значению, не зависящему от плотности пикселей (DP), по сравнению с размером страницы html

Check out this article on Adobe