Android Webview - javascript屏幕尺寸与实际屏幕尺寸

时间:2011-12-25 08:33:51

标签: javascript android webview

我有一个非常简单的活动,具有以下布局......

<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从服务器加载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)。因此,javascript中的screen.widthscreen.height似乎都报告了可用实际像素的三分之二。

任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

对于网站,您可以使用网站中的元标记控制Android中的屏幕大小。

“屏幕”尺寸低dpi,中dpi和高dpi有三种设置。

因此,设备会自动扩展您的网站(如果您没有设置任何内容,则假设为中等dpi)

在javascript中你没有得到设备的确切像素大小,你得到的更像设备在那个区域的某个地方......

可以在此处找到对此的一个很好的解释:http://developer.android.com/guide/webapps/targeting.html