自动下载Webview中显示的所有图像

时间:2012-06-27 03:48:42

标签: android

我的代码: -

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);
    // defining the WebView
    WebView myWebView = (WebView) findViewById(R.id.web);
    // Websetting can be used to define several web related settings.
    WebSettings webSettings = myWebView.getSettings();
    // Enabling JAVASCRIPT
    webSettings.setJavaScriptEnabled(true);
    // providing navigational access
    myWebView.setWebViewClient(new WebViewClient());
    // loading the URL
    myWebView.loadUrl("http://abcd.com");
}

它是最简单的网页浏览,任何人都会在那里找到,我想在那里进行一些修改,但我无法做到,所以请帮助我。

我正在打开的网站包含很多图片,现在我想知道,当访问网站时,所有图片和文字都会下载以在UI上显示,当我们关闭页面时,所有图片都是丢失,如果我猜对了。要下载图像,必须专门下载它。就像我们在Opera Browser或任何其他浏览器中一样。

所以我想将我的webview在UI中打开的所有图像自动下载到SDCard上的dir(路径已知/ sdcard / pics)。有办法吗?

2 个答案:

答案 0 :(得分:1)

您可以在WebView上启用缓存,并将缓存中的所有图像保存到您需要的任何位置。

要启用缓存,请使用以下代码:

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);

您可以在Saving the Android WebView cache on the SD card

中找到有关保存缓存内容的信息

答案 1 :(得分:1)

使用缓存目录方法的另一种方法是在WebView加载它们时即时拦截对图像的所有请求。您可以将WebViewClient设置为实现以下方法之一的WebView

第一种方法应该适用于所有设备,但可能会导致资源下载两次:一次手动将其保存在SD卡的特定目录中,一次由WebView本身保存。第二种方法允许您在将下载的资源保存到某处后将其返回,实际上只需单次下载即可。

您应该可以在此处找到大量示例,或者查询您最喜欢的搜索引擎。