如何在Android 4中获取WebView缩放 [英] How get webview scale in Android 4

查看:297
本文介绍了如何在Android 4中获取WebView缩放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不推荐使用WebView.getScale()(但仍可用)

WebView.getScale() is deprecated (but still usable)

获得Web视图缩放比例的推荐方法是使用WebViewClient.onScaleChanged() http://developer.android.com/reference/android/webkit/WebViewClient.html#onScaleChanged(android.webkit.WebView ,float,float)

The recommended way to get scale for webview is to use WebViewClient.onScaleChanged() http://developer.android.com/reference/android/webkit/WebViewClient.html#onScaleChanged(android.webkit.WebView, float, float)

我已在自定义Web视图中添加了相应的处理程序:

I've added corresponding handler in my custom webview:

public class CustomWebView extends WebView {

public CustomWebView(Context context) {
    super(context);
    setWebViewClient(new WebViewClient() {
        @Override
        public void onScaleChanged(WebView view, float oldScale, float newScale) {
            super.onScaleChanged(view, oldScale, newScale);
            currentScale = newScale
        }
    });
}

现在的问题是:如果我使用捏放大/缩小,则不会调用该方法(至少在我的Nexus 7上),因此仅当我使用缩放控件按钮时,该方法才有效.

And now the problem: the method not invoked (at least on my nexus 7) if I'm zoom in/zoom out using pinch, so it works good only if I use zoom controls button.

推荐答案

我正在开发API级别17,出于相同的原因,我最终使用了不赞成使用的方法getScale().当我在WebView中使用缩放缩放更改比例时,根本不会触发WebViewClient.onScaleChanged().我在扩展的WebView中有一个自定义的GestureListener,当放大视图(比例为1.0+)时,其行为会有所不同.在onScaleChanged()中设置类变量时,我无法可靠地获取正确的比例值.

I'm developing for API level 17 and I ended up using the deprecated method getScale() for the same reason. WebViewClient.onScaleChanged() simply wasn't triggered when I changed the scale using pinch zoom in the WebView. I have a custom GestureListener in my extended WebView that behaves differently when the view is zoomed in (scale 1.0+). I couldn't reliably get the proper scale value when I set a class variable in onScaleChanged().

这篇关于如何在Android 4中获取WebView缩放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆