先说下思路,在加载链接前,使用webview.getSettings().setBlockNetworkImage(true) 阻塞图片加载,并将WebView的缓存模式设为LOAD_NO_CACHE。
非图片资源加载完成后,将WebView的缓存模式设为LOAD_CACHE_ELSE_NETWORK,并解除图片阻塞,开始加载并缓存图片。
具体代码如下:
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.getSettings().setBlockNetworkImage(true);
view.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url); view.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); view.getSettings().setBlockNetworkImage(false);
}
});
可以说是最好的方法了。