listview-Android imageloader 显图片间长了导致溢出

问题描述

Android imageloader 显图片间长了导致溢出

在listview 中 使用imageLoader.displayImage显示图片 内存不能释放干净,每次加载列表页面都会有1MB左右内存增长,时间长了导致溢出,试了在跳转页面时用

AnimateFirstDisplayListener.displayedImages.clear();
imageLoader.clearMemoryCache();
imageLoader.clearDiscCache();
System.gc();
释放,效果不是很理想,也试过跳转回首页后finish掉其它所有activity,参数配置也换了很多,但也没有解决问题,下面是我的imageloader具体参数配置 ,希望有经验的朋友能给些指点,谢谢。

DisplayImageOptions options = new DisplayImageOptions.Builder().
bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.showStubImage(R.drawable.no_refurbish) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_empty) // 设置图片Uri为空或是错误的时候显示的图片
//.showImageOnFail(R.drawable.ic_error) // 设置图片加载或解码过程中发生错误显示的图片

.cacheInMemory(false) // 设置下载的图片是否缓存在内存中
.cacheOnDisc(true) // 设置下载的图片是否缓存在SD卡中
// .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
.build();

    File cacheDir = StorageUtils.getOwnCacheDirectory(context.getApplicationContext(), "imageloader/Cache");  

    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
    .threadPriority(Thread.NORM_PRIORITY-2)

    .denyCacheImageMultipleSizesInMemory()
    .memoryCacheExtraOptions(150, 150) // default = device screen dimensions

// .memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.denyCacheImageMultipleSizesInMemory()
.discCache(new UnlimitedDiscCache(cacheDir))
.discCacheSize(50 * 1024 * 1024)

.memoryCache(new FIFOLimitedMemoryCache(1000000)) // You can pass your own memory cache implementation
// .memoryCacheSize(13)
// .tasksProcessingOrder(QueueProcessingType.FIFO)
// .threadPoolSize(4)
// .threadPriority(Thread.MIN_PRIORITY + 3)
// .denyCacheImageMultipleSizesInMemory()
// .discCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.writeDebugLogs() // Remove for release app
.defaultDisplayImageOptions(options)
.build();

            listview 的getview中 使用
           imageLoader.displayImage(imageUrls[position], holder.image);
            显示图片

解决方案

imageLoader.displayImage(imageUrls[position], holder.image,options);

时间: 2024-11-23 22:39:01

listview-Android imageloader 显图片间长了导致溢出的相关文章

android-Android ImageLoader显示图片内存猛增

问题描述 Android ImageLoader显示图片内存猛增 我在用ImageLoader的时候,显示了2M图片的时候内存一下在就到了20M(还是可以运行的 我的ImageLoaderOptions 设置.cacheInMemory(false) config .memoryCache(new LruMemoryCache(2 * 1024 * 1024)).memoryCacheSize(50 * 1024 * 1024)..这是怎么回事? 解决方案 2M是因为图片被编码压缩了之后的,要显

Android ListView实现ImageLoader图片加载的方法

本文实例讲述了Android ListView实现ImageLoader图片加载的方法.分享给大家供大家参考,具体如下: 最近一直忙着做项目,今天也是忙里偷闲,想写篇博客来巩固下之前在应用中所用的知识.之前我们可能会也会肯定遇到了图片的异步加载问题,然而我们也可能会遇到图片二次或多次加载,这是ListView的特性造成的,具体原因不在这里讨论,又或者是OOM等问题.今天要讲的是一个开源框架Imageloader,个人觉得非常的好用. 该框架在github的地址.https://github.co

Android之ListView异步加载图片且仅显示可见子项中的图片

折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整实例都没看到,只有自己一点点研究了,总体感觉 android 下面要显示个图片真不容易啊. 项目主要实现的功能: 异步加载图片 图片内存缓存.异步磁盘文件缓存 解决使用 viewHolder 后出现的图片错位问题 优化列表滚动性能,仅显示可见子项中的图片 无需固定图片显示高度,对高度进行缓存使列表滚

Android Universal ImageLoader 缓存图片_Android

项目介绍: Android上最让人头疼的莫过于从网络获取图片.显示.回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你.Universal Image Loader for Android的目的是为了实现异步的网络图片加载.缓存及显示,支持多线程异步加载.它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进. 特性列举: 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如

Android Universal ImageLoader 缓存图片

项目介绍: Android上最让人头疼的莫过于从网络获取图片.显示.回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你.Universal Image Loader for Android的目的是为了实现异步的网络图片加载.缓存及显示,支持多线程异步加载.它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进. 特性列举: 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如

Android imageloader异步方式显示图片的

问题描述 Android imageloader异步方式显示图片的 Android imageloader异步方式显示图片的怎么样在图片读取完成之后返回,需要怎么写ImageLoadingListener 解决方案 Universal-Image-Loader 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 支持图片的内存缓存,

解决Android ListView异步加载图片乱序问题

在Android所有系统自带的控件当中,ListView这个控件算是用法比较复杂的了,关键是用法复杂也就算了,它还经常会出现一些稀奇古怪的问题,让人非常头疼.比如说在ListView中加载图片,如果是同步加载图片倒还好,但是一旦使用异步加载图片那么问题就来了,这个问题我相信很多Android开发者都曾经遇到过,就是异步加载图片会出现错位乱序的情况.遇到这个问题时,不少人在网上搜索找到了相应的解决方案,但是真正深入理解这个问题出现的原因并对症解决的人恐怕还并不是很多.那么今天我们就来具体深入分析一

Android ListView滑动过程中图片显示重复错乱闪烁的原因及解决方法

主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及ListView的缓存机制. 1.原因分析 ListView item缓存机制:为了使得性能更优,ListView会缓存行item(某行对应的View).ListView通过adapter的getView函数获得每行的item.滑动过程中, a. 如果某行item已经滑出屏幕,若该item不在缓存内,则put进缓存,否则更新缓存: b. 获取滑入屏幕的行item之前会先判断缓存中是否有可用的ite

android webview中图片 长按点击保存本地 部分手机不能实现。

问题描述 android webview中图片 长按点击保存本地 部分手机不能实现. 代码如下 private String imgurl = """"; /*** * 功能:长按图片保存到手机 */@Overridepublic void onCreateContextMenu(ContextMenu menu View v ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu v menuInfo)