当前位置: 代码迷 >> Android >> 关于异步加载图片库的使用解决方案
  详细解决方案

关于异步加载图片库的使用解决方案

热度:28   发布时间:2016-04-28 02:49:40.0
关于异步加载图片库的使用
现在在用Picasso异步图片加载库加载图片,在使用上面有一点问题想请教一下大家。

Picasso加载实例是在BaseActivity里面创建一个全局实例来给每一个Activity用,统一由BaseActivity配置?

还是每个Activity里面单独自己创建,然后在Destroy的时候销毁释放?


我现在使用的是在BaseActivity里面声明一个全局的Picasso实例,同时使用了LruCache,然后每一个继承的Activity直接使用该Picasso进行图片异步加载,那么我需不需要在BaseActivity里面去关心Picasso的内存缓存释放的问题?
------解决思路----------------------
Imageloader 貌似比较出色,楼主可取看看
------解决思路----------------------
一直在用imageloader,我觉得比较全面,楼主可以试试,维护的人也比较多,它会采用全局的配置他的config,比如线程池,缓存大小,也集成LruMemoryCache等等,比较灵活,楼主要是需要的话我可以提供给你我们项目中的使用逻辑(已经很成熟了)。Picasso很早以前用过都忘了是什么样的
------解决思路----------------------
引用:
Quote: 引用:

一直在用imageloader,我觉得比较全面,楼主可以试试,维护的人也比较多,它会采用全局的配置他的config,比如线程池,缓存大小,也集成LruMemoryCache等等,比较灵活,楼主要是需要的话我可以提供给你我们项目中的使用逻辑(已经很成熟了)。Picasso很早以前用过都忘了是什么样的


十分感谢,能否提供一下相关的使用经验,比如加载实例的配置设置和一般在什么时候清理缓存
抱歉这么久才回复

https://github.com/nostra13/Android-Universal-Image-Loader 下这个就行了,里面例子实现,原理都有。
------解决思路----------------------
1,配置我是在application中做的全局的,具体实例是用mImageLoader = ImageLoader.getInstance();
2,下面是我的配置
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
this)
// .memoryCacheExtraOptions(200, 200)
// default = device screen dimensions
// .diskCacheExtraOptions(48, 48, null)
.threadPoolSize(3)
// default
.threadPriority(Thread.NORM_PRIORITY - 2)
// default
.tasksProcessingOrder(QueueProcessingType.FIFO)
.memoryCache(new LruMemoryCache(4 * 1024 * 1024))
.memoryCacheSizePercentage(10)
// default
// .denyCacheImageMultipleSizesInMemory()
// .memoryCacheSize(10 * 1024 * 1024)
// .memoryCacheSize(20)
// default
.discCacheExtraOptions(400, 800, null)
.discCache(new UnlimitedDiskCache(cacheDir))
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.discCacheSize(128 * 1024 * 1024)
.discCacheFileCount(1000)
.imageDownloader(
new BaseImageDownloader(this, 5 * 1000, 30 * 1000))
// default
.imageDecoder(new BaseImageDecoder(true))
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.build();
ImageLoader.getInstance().init(config);

3,我没明白你的activity的机制,你可以去跟踪一下heap看看是怎么溢出的,下面这个帖子看一下会有帮助,http://blog.csdn.net/zhiying201039/article/details/8581982
  相关解决方案