在安卓4.0如何获得网页流量规模(How get webview scale in Android

2019-08-31 11:30发布

WebView.getScale()被弃用(但仍然可用)

推荐的方式来获得规模为网页流量是使用WebViewClient.onScaleChanged() http://developer.android.com/reference/android/webkit/WebViewClient.html#onScaleChanged(android.webkit.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)的方法,如果我放大/缩小使用捏,所以它的作品好只是如果我使用缩放控制按钮。

Answer 1:

我开发API级别17,我结束了使用该方法已过时的getScale()出于同样的原因。 WebViewClient.onScaleChanged()时,我改变了使用双指缩放在WebView中规模根本没有触发。 我在我的WebView扩展的自定义GestureListener当视图(规模1.0及更高版本)被放大,其行为不同。 我不能可靠地获得正确的刻度值,当我在onScaleChanged设置一个类变量()。



Answer 2:

尝试:

public MyWebView(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
    setWebViewClient(new WebViewClient() {
        @Override
        public void onScaleChanged(WebView view, float oldScale, float newScale) {
            super.onScaleChanged(view, oldScale, newScale);
            currentScale = newScale;
        }
    });
}


文章来源: How get webview scale in Android 4