1

这对我来说很莫名其妙。请帮忙,我想不通...

在我的示例 html 文件中,我将元标记设置为

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

使网页适合我的自定义尺寸的网页视图,例如 800x600。在 Android 中,我必须指定“target-densitydpi=device-dpi”,它做得很好。我使用 nexus 7 平板电脑测试了我的自定义网页,该网页正确地适合我的网页视图。

相同的代码在 Kindle Fire 中不起作用。只显示了我网页的一部分,即使我设置了 'initial-scale=1.0' 也无济于事。

我以编程方式尝试了各种设置,但也无济于事。

webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setSupportZoom(true); 
webview.getSettings().setLoadWithOverviewMode(true);
webview.setInitialScale(1);
webview.getSettings().setUseWideViewPort(true);

任何指针?

4

2 回答 2

0

我找到了解决我报告的问题的方法。基本上,我最终采用了基于 JavaScript 的解决方案,我zoomscale根据视口尺寸动态计算。在我的例子中,原始网页内容被创作为 1024x768,我需要一个 800x600 的视口来显示缩放后的内容。

load()加载文档时调用该函数。

<body style="position: relative; background: url('opt_background.jpg'); background-repeat: no-repeat; background-size: 100% auto;" onload="load()">

function load()
{
// This function gets the current view port width and height, computes an adjusted zoom scale and sets it.
var viewportWidth  = document.documentElement.clientWidth
var viewportHeight = document.documentElement.clientHeight  
var zoomScale = Math.ceil(viewportWidth * 100 / 1024);
document.body.style.zoom= zoomScale + "%";
}

那成功了。

于 2012-10-01T21:35:16.993 回答
0

因为 Kindle-Fire 是 hdpi 设备,您需要使用 target-density=high-dpi 或明确设置 533(Fire HD 和 Nexus7 不太匹配)

http://developer.android.com/guide/webapps/targeting.html#ViewportDensity

于 2012-09-28T21:01:13.857 回答