Обработка плотности экрана для веб-приложений - PullRequest
2 голосов
/ 02 января 2012

Я написал очень простое приложение для Android, которое в основном отображает полноэкранный режим WebView (без заголовка, панели уведомлений или строки URL) в альбомной ориентации.

Затем Activity в основном загружает файл client.html с ПК пользователя, который затем загружает фиксированное изображение, предназначенное для заполнения всего экрана. Файл client.html имеет элемент meta следующим образом ...

<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, height=device-height, initial-scale=1.0, user-scalable=no" />

В <html><body> атрибут <img> src устанавливается путем запроса изображения определенного размера следующим образом ...

<div id="BasicDemo" >
    <img id="nscreen" />
</div>
<script type="text/javascript">setImageSource()</script>

... а это javascript setImageSource() ...

function setImageSource() {
    $.getScript("myscript.js", function() {
        $("#nscreen").attr("src", "/control?size=" + getDimensions());
    });
}

Функция getDimensions() - это еще один фрагмент JavaScript, который вызывает приложение Android и извлекает «абсолютные» размеры экрана в пикселях.

Итак, вот моя проблема (и я знаю, что использование абсолютных пикселей, вероятно, является ее корнем) ....

На моем Desire он классифицируется как hdpi для веб-приложений и имеет фактические пиксели 800x480. Вызов для установки источника изображения выглядит как ... "/control?size=800x480" и работает отлично. Изображение соответствует моему полному экрану. Один тестер, однако, имеет 7-дюймовый планшет - также 800x480, но из-за размера экрана он классифицируется как mdpi. Запрос изображения того же размера с "/control?size=800x480" и тот факт, что тег <meta> заставляет mdpi, очевидно, означает, что изображение увеличено.

Итак, вопрос - я вынужден указывать размеры при запросе источника изображения - как я должен правильно переводить вещи? У кого-нибудь есть подобный опыт, которым они могут поделиться?

Я прочитал Ориентационные экраны из веб-приложений несколько раз, и я явно что-то упускаю.

1 Ответ

0 голосов
/ 02 января 2012

Попробуйте использовать медиазапросы CSS для LDPI, MDPI и HDPI: http://designbycode.tumblr.com/post/1127120282/pixel-perfect-android-web-ui

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