如何与WebView共享图像缓存

时间:2011-06-26 01:44:35

标签: android webview

我自己实现了ImageCache模块,它可以自动下载html中的图像。

但我不知道如何与WebView的ImageCache共享,如果图像已被webview缓存,则不会再次下载。

我实现了一个ContentProvider,如果图像已被缓存,则从缓存中读取,否则从Internet下载。但是图像通常一起出现,Webview长时间显示为空白

2 个答案:

答案 0 :(得分:0)

尝试webview.loadDataWithBaseURL("file:///android_asset/",data, "text/html", "utf8","");

之类的内容

您可能会发现此网站有用:Graphing Data

答案 1 :(得分:0)

您是否考虑过构建自己的ContentProvider来访问缓存?它并不像听起来那么可怕,你只需要扩展ContentProvider并将它挂钩到你的清单文件中。

Here是一篇描述它的博客文章 - 我在一个大量使用WebViews的应用程序中实现了它:Source on Github

这种ContentProvider可以加载WebView中的所有本地文件 - 您必须将此想法调整为:

  • 在将所有文件显示到WebView之前将其下载到SD卡或内部存储,然后只需通过loadUrl()或
  • 加载本地HTML文件
  • 仅在本地存储缓存图像,并将WebView的HTML代码中所有出现的原始图像位置替换为其缓存位置(使用上述ContentProvider扩展)。您可以通过loadUrl()将javascript“注入”到WebView中来操作HTML源代码 - 在视图中使用一些精细的正则表达式或一致的CSS类,这应该是可行的。