如何控制webView的缩放
我有这样的代码:
[...]
{
webView = (WebView) findViewById(R.id.webView1);
webView.setInitialScale(getScale(Double.parseDouble(pubPages)));
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setPadding(0, 0, 0, 0);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webView.loadUrl("http://urltoshow");
}
private int getScale(double numPages){
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenHeight = dm.heightPixels;
Double val = (new Double(screenHeight-40)/(new Double(1024)));
val = val * 100d;
return val.intValue();
}
它工作正常,但我想禁止将侧面缩放到低于其自然高度。
放大是的,缩小是的,但最多到一个点。
如何做到这一点?
I have this code:
[...]
{
webView = (WebView) findViewById(R.id.webView1);
webView.setInitialScale(getScale(Double.parseDouble(pubPages)));
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setPadding(0, 0, 0, 0);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webView.loadUrl("http://urltoshow");
}
private int getScale(double numPages){
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenHeight = dm.heightPixels;
Double val = (new Double(screenHeight-40)/(new Double(1024)));
val = val * 100d;
return val.intValue();
}
And it works fine, but I want to disallow zooming the side below its natural height.
Zoom in yes, zoom out yes but up to a point.
How to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于后代:
这很好。
For future generations:
This work fine.
如果您想控制缩放 - 缩小,则不要使用默认的缩放控件。
在你的 xml 文件集中......
现在。在您的活动中声明并初始化
ZoomControls zc;
并且放大和缩小的点击事件是..
希望这张地图可以帮助您..
if you want to controll zoomin - zoom out then dont use default zoomin controll.
In your xml file set..
and now. in your activity Declare and initialize
ZoomControls zc;
and for click event of zoom in and zoom out is ..
hope this map help you ..
用这个!!
use this!!