Android WebView不尊重缩放百分比

时间:2010-06-11 19:29:55

标签: android webview

我有一个WebView,我试图在加载页面时将其缩放到某个百分比。该软件的iPhone版本使用HTML元标记:

<meta name="viewport" content="width=320, initial-scale=0.95, maximum-scale=2.0, user-scalable=1">

由于Android的WebView似乎不尊重该标记,因此我使用setInitialScale()对该百分比进行了硬编码。但是,WebView只是忽略了这种方法调用。不管我放在那里的数字是100%。

想法?

更新:它不能在模拟器,Droid(摩托罗拉)或我的G1(HTC)上运行。

6 个答案:

答案 0 :(得分:5)

某些HTC设备遇到WebView问题,请尝试使用此代码段!

import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;

myWebView = new WebView(this);
myWebView.getSettings().setLoadsImagesAutomatically(true);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.setInitialScale(100);      
try {
   Method m = myWebView.getClass().getMethod("setIsCacheDrawBitmap", boolean.class);
    if (m != null) {
        m.invoke(myWebView, false);
        myWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
    }
} catch (NoSuchMethodException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}

myWebView.loadUrl("http://www.stackoverflow.com");

答案 1 :(得分:1)

您是否为网络视图启用了缩放支持?

    WebSettings webSettings = mywebView.getSettings();
    webSettings.setSupportZoom(true);       

答案 2 :(得分:1)

当我没有回应时,下面的代码帮助了我。值得一试:

mywebview.setWebViewClient(new WebViewClient()); 
mywebview.getSettings().setSupportZoom(true) ; 
mywebview.getSettings().setUseWideViewPort(true) ; 
mywebview.setInitialScale(1) ; 
mywebview.loadUrl(sURL); 

答案 3 :(得分:0)

答案 4 :(得分:0)

可以看到几个选项。

1。可能你的代码有问题。这是最简单的代码,我可以告诉它对我有用。内容已缩放。

WebView webview1 = (WebView) findViewById(R.id.webview1);
webview1.setInitialScale(30);
webview1.loadUrl("http://stackoverflow.com");

所以请发布您的代码。所有与WebView配置相关的代码。 我在模拟器2.2上测试

2。您测试的网址可能有问题。您可以测试“http://stackoverflow.com”,因为我测试它并且缩放得很好。

3。也许我们使用不同的SDK。您构建的SDK是什么?我的意思是default.properties中你的目标是什么?你在AndroidManifest.xml中使用了什么-ddk?

这是一个对我来说很好的简单测试http://open-pim.com/tmp/WebViewTest.zip。你也可以尝试一下。

答案 5 :(得分:0)

meta标签适用于我,如果我用分号(;)而不是逗号(,)分隔参数。我以前用过这个:

<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />

它起作用,至少在浏览器中是这样。我不确定WebView,但它可能值得一试。