我有一个非常简单的活动,具有以下布局......
<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.width
和screen.height
似乎都报告了可用实际像素的三分之二。
任何人都可以解释为什么会这样吗?
答案 0 :(得分:4)
对于网站,您可以使用网站中的元标记控制Android中的屏幕大小。
“屏幕”尺寸低dpi,中dpi和高dpi有三种设置。
因此,设备会自动扩展您的网站(如果您没有设置任何内容,则假设为中等dpi)
在javascript中你没有得到设备的确切像素大小,你得到的更像设备在那个区域的某个地方......
可以在此处找到对此的一个很好的解释:http://developer.android.com/guide/webapps/targeting.html