2010-06-08 84 views
2

在我的应用程序中,我使用SoftReference来缓存图像,它与活动的Internet连接正常工作。现在我需要缓存图像,所以我可以在离线模式下使用它。在Android上缓存图像的最佳做法是什么?

实施它的最佳方法是什么? 使用SoftReference和数据库的复杂解决方案?或者SoftReference和本地存储(SD卡)?

我会很感激你的建议。谢谢。

回答

2

2级缓存在内存和磁盘上。查看github上的https://github.com/mttkay/droid-fu项目。它包含一个以这种方式工作的ImageCache。

+0

我试图WebImageView(从DROID-FU)库,但我不能让它工作,像没有加载。我已经创建了从DroidFuApplication扩展的应用程序,并将其配置为清单,即使我已经从BetterDefaultActivity扩展了主要活动。但我仍然只看到加载动画。 你有工作的例子吗?我的代码onCreate()的主要活动如下: WebImageView img =(WebImageView)findViewById(R.id.webimage); img.setImageUrl(“http://static.technorati.com/09/12/13/2291/android.jpg”); img.loadImage(); 它有什么问题? – barmaleikin 2010-06-09 05:36:15

+0

应该工作。 logcat中是否有例外情况?你的应用程序是否具有INTERNET权限? – 2010-06-09 11:58:25

+0

是的,internetn许可在这里,我也增加了写入本地存储的权限。 – barmaleikin 2010-06-09 15:05:15

0

最后回答,但我希望它仍然值得一些东西。 ImageDownloader是这项工作的最佳选择。我还发现了类的轻微变化在:

http://theandroidcoder.com/utilities/android-image-download-and-caching/

这两者之间的主要区别在于,ImageDownloader采用了Android缓存系统,以及修改后的一个使用内部和外部存储缓存,保持高速缓存的图像无限期地或直到用户手动删除它。作者还提到了Android 2.1的兼容性。

问候,EZFrag

相关问题