在列表中显示图像使用ImageLoader一次查看

时间:2013-10-08 08:14:42

标签: android image

我使用com.nostra13.universalimageloader中的imageLoader库在列表视图中显示图像的代码

这样的代码

imageLoader.displayImage(link_url, imageView, options, animateFirstListener);   

但此代码使此应用必须从此网址下载图片。我想问,我可以使用此缓存图像来显示图像。因此,如果没有连接互联网,可以显示图像,因为此图像之前保存为缓存?如果此图像来自缓存,如何在imageview中显示图像?感谢

3 个答案:

答案 0 :(得分:2)

默认情况下,我会存储缓存。

检查一次断开互联网。

options = new DisplayImageOptions.Builder()
                .showStubImage(R.drawable.deafaultimage).cacheInMemory()
                .cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565).build();

答案 1 :(得分:2)

不应再次下载,而应将图像缓存在手机记忆库或SD卡中。

它使用url作为密钥,在sdcard中缓存图像(如果已正确配置)。如果存在从缓存中显示,则下载,缓存和显示图像。

在自定义适配器构造函数

 File cacheDir = StorageUtils.getOwnCacheDirectory(activity context, "cache_folder")
 imageLoader = ImageLoader.getInstance();

 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(a)
.discCache(new UnlimitedDiscCache(cacheDir))
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())
.enableLogging()
.build();

imageLoader.init(config);
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.stub_id)//display stub image untik image is loaded
.cacheInMemory()
.cacheOnDisc()
.displayer(new RoundedBitmapDisplayer(20))
.build();

在你的getView()

viewholder.image=(ImageView)vi.findViewById(R.id.imageview); 
imageLoader.displayImage(imageurl, viewholder.image,options);

答案 2 :(得分:0)

HTTP缓存取决于Cache-Control headers。如果服务器在响应中发送正确的标头,那么即使没有网络,库也会自动缓存资源并访问它。您不必明确地做任何事情。

如果需要,您可以配置更多选项,如缓存大小等。请参阅docs