【发布时间】:2010-03-24 04:47:21
【问题描述】:
我有一个 WebView 和 2 个 URL 来打开它。我想要做的是,当我为第一个 url 设置缩放级别,然后我转到第二个 url 时,它也应该具有相同的缩放级别。现在,两者的缩放级别都会重置。
谢谢, 法哈
【问题讨论】:
标签: android
我有一个 WebView 和 2 个 URL 来打开它。我想要做的是,当我为第一个 url 设置缩放级别,然后我转到第二个 url 时,它也应该具有相同的缩放级别。现在,两者的缩放级别都会重置。
谢谢, 法哈
【问题讨论】:
标签: android
我相信这将适用于这种情况
mWebView.setInitialScale(ZOOM_LEVEL);
ZOOM_LEVEL 例如可以在哪里 25 为 25% 150 为 150%
【讨论】:
使用webSettings 类
webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
请注意,尽管webSettings 从 API 级别 1 开始可用,WebSettings.ZoomDensity 从 API 级别 7 开始可用。适用于所有设备分辨率。
另外,为了在 webView 上启用缩放,添加以下代码:
webView.getSettings().setBuiltInZoomControls(true);
【讨论】:
setDefaultZoom 已弃用。
webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
所以你可以像下面这样使用,
webview.setInitialScale(1);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setUseWideViewPort(true);
这可以帮助您删除
setDefaultZoom(WebSettings.ZoomDensity.FAR).
【讨论】:
在离开第一页之前,使用
int scale = 100 * webView.getScale();
然后在加载第二页后,使用
webView.setInitialScale( scale );
【讨论】:
getScale()已被弃用,我使用getScaleY()并达到同样的效果
@John 给出了正确的想法,但是一个命令就足够了,因为您可以在页面显示之前获取和设置:
private class MyWebViewClient extends WebViewClient {
public void onPageFinished(WebView view, String url) {
view.setInitialScale((int)(100*view.getScale()));
}
}
然后将其设置为您的 WebView 的客户端:
webview.setWebViewClient(new MyWebViewClient());
【讨论】:
.getScale() 已弃用:view.setInitialScale((int)(100*view.getScaleY()));
您可以将缩放设置为 0.1f
mWebView.zoomBy(0.1f);
【讨论】:
试试这个东西
int default_zoom_level=100;
Point Scroll=new Point(0,0);
webview1.setInitialScale(default_zoom_level);
webview1.loadData("url");
在执行 zoomIn/ZoomOut 或 Scrolling 之后。由于可能会更改比例,因此计算比例级别并沿 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);
【讨论】:
我发现这个博客很有帮助:
它将帮助您设置初始缩放级别和搜索更改内容的 webview 调整大小
// 设置seek bar的初始进度 mSeekBar.setProgress(mWebView.getSettings().getTextZoom()/25);
// Set a change listener for seek bar
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
/*
public abstract void setTextZoom (int textZoom)
Sets the text zoom of the page in percent. The default is 100.
Parameters
textZoom : the text zoom in percent
*/
// Zoom the web page text
// We will allow text zooming 25% to 300%
mWebView.getSettings().setTextZoom(i*25);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
http://android--code.blogspot.in/2016/01/android-how-to-change-webview-text-size.html
【讨论】:
WebView 的缩放可以通过zoomIn() 和zoomOut() 方法以编程方式控制
【讨论】: