Android WebView不尊重缩放比例

问题描述:

我有一个WebView,我试图在加载页面时缩放到一定百分比。该软件的iPhone版使用HTML元标记:Android WebView不尊重缩放比例

<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)。

+0

嗨Android设备是你用什么? – Jorgesys 2010-06-11 21:34:18

+0

模拟器,G1,Droid ...没有在任何工作。 – 2010-06-11 22:30:58

您是否为您的webview启用缩放支持?

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

我没有,但我只是试了一下,它没有任何区别。 – 2010-06-11 21:12:43

一些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.*.com"); 
+1

我发现它是原始链接http://community.htc.com/na/htc-forums/android/f/91/p/2332/8538.aspx =) – Jorgesys 2010-06-11 21:49:32

+1

没有什么区别...谢谢。 – 2010-06-11 22:27:28

可以看到几个选项。

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

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

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

2。可能有你测试的网址有问题。您可以在测试“http://*.com”时测试它,并且它的缩放比例很好。

3。也许我们使用不同的SDK。你建立什么SDK?我的意思是你在default.properties中的目标是什么? AndroidManifest.xml中的用法sdk是什么?

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

+2

这工作!但不是在我的应用程序。变成元视口标签:initial-scale = 1.0;最大规模= 1.0;阻止了setInitialScale()的工作。删除它们后,它的作品。 – 2010-10-12 11:34:20

+0

此示例在Android 2.3.6上不适用于WebView。 *网站不缩放。 – 2013-05-20 10:09:49

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

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

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

+0

';'对我没有任何帮助。 – Jake 2014-03-18 19:14:21

+0

这是无效的内容,只允许逗号:https://css-tricks.com/snippets/html/responsive-meta-tag/ – 2016-10-18 23:27:39

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

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

这不适用于我的Android 2.3.6手机。为视口设置“初始缩放比例”仍然没有效果。 – 2013-05-20 10:07:11