Android Webview - размеры экрана javascript и фактические размеры экрана


Answers

Question

У меня очень простое действие со следующей компоновкой ...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </WebView>
</LinearLayout>

Сама Activity настроена для полноэкранного режима (без заголовка и панели уведомлений от Android) и принудительно для пейзажа.

Итак ... на моем HTC Desire, WebView в теории занимает 800x480 (wxh) пикселей. Пока все хорошо, он полностью заполняет экран.

У меня WebView путаница в том, что WebView загружает HTML-документ с сервера, который использует функцию javascript для получения ширины и высоты экрана ...

<script type="text/javascript">
<!--
    function getDims() {
        var screenW = screen.width;
        var screenH = screen.height;
        return "size=" + screenW + "x" + screenH;
    };
-->
</script>

... проблема в том, что screenW - 527, а screenH - 320, и я не понимаю, почему.

Глядя на высоту 320, это ровно две трети 480, поэтому я затем посмотрел, что две трети 800 (~ 533). Таким образом, кажется, что screen.width и screen.height в javascript сообщают две трети фактических пикселей.

Может ли кто-нибудь объяснить, почему это происходит?