我有一个WebView和2个URL来打开它。我想要做的是,当我为第一个网址设置缩放级别,然后我转到第二个网址时,它也应该具有相同的缩放级别。现在,缩放级别将重置为两者。
谢谢, 法哈
答案 0 :(得分:41)
这将适用于我认为的这种情况
mWebView.setInitialScale(ZOOM_LEVEL);
例如,ZOOM_LEVEL可以是 25%25% 150%150%
答案 1 :(得分:35)
使用webSettings类
webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
请注意,尽管自API级别1以来webSettings可用,但自API级别7以来WebSettings.ZoomDensity可用。适用于所有设备分辨率。
此外,为了在webView上启用缩放,请添加以下代码:
webView.getSettings().setBuiltInZoomControls(true);
答案 2 :(得分:17)
不推荐使用setDefaultZoom。
webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
因此,您可以使用如下所示,
webview.setInitialScale(1);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setUseWideViewPort(true);
这有助于您删除
setDefaultZoom(WebSettings.ZoomDensity.FAR).
答案 3 :(得分:13)
在离开第一页之前,请使用
int scale = 100 * webView.getScale();
然后在加载第二页后,使用
webView.setInitialScale( scale );
答案 4 :(得分:3)
@John给出了正确的想法,但是一个命令就足够了,因为你可以在页面显示之前得到并设置:
private class MyWebViewClient extends WebViewClient {
public void onPageFinished(WebView view, String url) {
view.setInitialScale((int)(100*view.getScale()));
}
}
然后将其设置为WebView的客户端:
webview.setWebViewClient(new MyWebViewClient());
答案 5 :(得分:2)
尝试这件事
int default_zoom_level=100;
Point Scroll=new Point(0,0);
webview1.setInitialScale(default_zoom_level);
webview1.loadData("url");
执行zoomIn / ZoomOut或Scrolling.Since可能会改变比例,因此计算比例级别并沿X轴和Y轴滚动。
int current_scale_level=(int)webview1.getScale()*100;
Scroll.x=webview1.getScrollX();
Scroll.y=webview1.getScrollY();
then before loading of next webview do this
webview2.setInitialScale(current_scale_level);
webview2.loadData("url");
webview2.scrollTo(Scroll.x,Scroll.y);
答案 6 :(得分:2)
您可以将缩放设置为0.1f
mWebView.zoomBy(0.1F);
答案 7 :(得分:0)
我发现此博客很有用:
它将帮助您设置初始缩放级别和webview调整大小的搜索更改内容
//设置搜索栏的初始进度 mSeekBar.setProgress(mWebView.getSettings()getTextZoom()/ 25);
app.hello_controller:
class: AppBundle\Controller\HelloController
<强> http://android--code.blogspot.in/2016/01/android-how-to-change-webview-text-size.html 强>
答案 8 :(得分:0)
可以通过zoomIn()
和zoomOut()
方法以编程方式控制WebView的缩放