2011-06-26 121 views
0

我自己实现了一个ImageCache模块,它可以自动下载html中的图像。如何与WebView共享图像缓存

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

我实现了一个ContentProvider,如果图像已被缓存,从缓存读取,否则从互联网下载。但图像通常出现在一起,很长一段时间的网页视图显示空白

回答

0

试着这么做webview.loadDataWithBaseURL("file:///android_asset/",data, "text/html", "utf8","");

您可能会发现这个网站有帮助的:Graphing Data

0

你有没有考虑建立自己的ContentProvider访问缓存?它听起来并不像听起来那么可怕,您只需要扩展ContentProvider并将其挂载到清单文件中即可。

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

这种ContentProvider的可加载的WebView中的所有本地文件 - 你将不得不适应这种想法要么:在WebView中显示它

  • 下载到SD卡或内部存储的所有文件之前,并简单地通过loadUrl()加载本地HTML文件,或者仅在本地存储缓存图像,并用它们的缓存位置替换它们在WebView的HTML代码中的所有出现的原始图像位置(使用上述的扩展名内容提供商)。您可以通过loadUrl()将JavaScript注入WebView来操作HTML源代码,在视图中使用一些优良的正则表达式或一致的CSS类,这应该是可行的。
+0

谢谢,但我遇到了新的问题: – yava

+0

我实现了一个ContentProvider,如果图像已被缓存,从缓存读取,否则从互联网下载。但Webview有时会长时间显示空白,并且图像通常会一起出现。 – yava

+0

你可以在pastebin.com或https://gist.github.com/上发布代码吗? – manmal