我在片段的onCreateView中调用了wv.zoomIn(),它没有效果。
全文......
我的片段包含一个滑块,我用它来编程缩放/缩放webview。这工作正常。
我现在想要存储上次使用的缩放级别,并在下次显示时将其应用到webview。所以在onCreateView中,我正在检索缩放级别并调用zoomIn适当的次数。
public View onCreateView(LayoutInflater inflater...
...
if (savedZoom > defaultZoom) {
for (int i=defaultZoom; i< savedZoom; i++) {
MyLog.d("zooming in"); // appears x times in log as expected
boolean zoominResult = wv.zoomIn();
MyLog.d("zoominResult = "+zoominResult); // shows zoomIn returns FALSE
}
}
日志确认wv.zoomIn()的调用次数正确,但显示的webview仍处于默认缩放状态。
任何建议,例如调用zoomIn()后渲染的方法,或者保留和恢复webview缩放设置的替代方法?
答案 0 :(得分:2)
我认为此代码会有所帮助:
webView.clearView();
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("< your URL >");
int scale = (int) (100 * webView.getScale());
webView.setInitialScale(scale);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setBuiltInZoomControls(true);
答案 1 :(得分:1)
而不是缩放循环中的webview
,
试试
wv.getSettings().setDefaultZoom(savedZoom-defaultZoom);
此外,为了在webView上启用缩放,请添加以下代码:
wv.getSettings().setBuiltInZoomControls(true);
您也可以尝试
int zoomLevel=(defaultZoom/savedZoom)*100;
wv.setInitialScale(zoomLevel);
答案 2 :(得分:1)
只需设置初始比例:
webView.setInitialScale(500);
其中500可以是您保存的缩放值。