android图片缓存框架Android-Universal-Image-Loader

http://blog.csdn.net/king_is_everyone/article/details/34107081

最近跟同学们做了一个创业项目,其实跟以前做项目不同,以前大多数都是做web网站,对内存管理这些不太关注,因为是pc机,做android的话也就是一些小列子,现在到了做产品阶段吧,只能把项目做到最优。不扯了,先来说这个框架是做什么的,Android-Universal-Image-Loader主要是一个图片的缓存框架,根据官方解释就是,它提供了一个异步处理图片的方案。它提供两种获取图片方式async or sync,并且提供了一个可定制化的组件(thread executors, downloader, decoder, memory and disk cache, display image options, etc),它会把图片首先缓存到本地,然后在从本地进行读取这些图片,

这是官方使用的效果图

android图片缓存框架Android-Universal-Image-Loader

先来说说怎么使用它:首先在github上面下载Android-Universal-Image-Loader,加入到你的android项目里面,然后记得一定要加上这两个权限,否则这个缓存框架是不能够使用的

  1. <manifest>
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <!-- Include next permission if you want to allow UIL to cache images on SD card -->
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  5. ...
  6. <application android:name="MyApplication">
  7. ...
  8. </application>
  9. </manifest>

然后在代码里对该缓存框架进行配置,之所以说它是一个很灵活的东西,是因为它里面的大多数参数都可以手动配置,组件通用化程度高,几乎不需要进行复写。

这是我大概根据官方文档翻译的一些配置,其实对于大家来说,用默认的即可,除非是有特殊要求。

android图片缓存框架Android-Universal-Image-Loader

android图片缓存框架Android-Universal-Image-Loader

先开始使用的第一步:

配置ImageLoaderConfiguration这个类实现全局ImageLoader

  1. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
  2. activity)
  3. .memoryCacheExtraOptions(640, 480)
  4. // 保存每个缓存图片的最大长和宽
  5. .threadPoolSize(3)
  6. // 线程池的大小 这个其实默认就是3
  7. .memoryCacheSize(2 * 1024)
  8. // 设置缓存的最大字节
  9. .denyCacheImageMultipleSizesInMemory()
  10. // 缓存显示不同大小的同一张图片
  11. .imageDownloader(
  12. new BaseImageDownloader(activity, 5 * 1000, 30 * 1000)) // connectTimeout
  13. // s)超时时间
  14. .build();
  15. ImageLoader imageLoader = ImageLoader.getInstance();
  16. imageLoader.init(config);

这是我大概需要的一些参数配置。

第二步

配置一些图片选项

  1. DisplayImageOptions options;
  2. options = new DisplayImageOptions.Builder()
  3. .showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
  4. .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
  5. .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
  6. .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
  7. .cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
  8. .displayer(new FadeInBitmapDisplayer(100))// 是否图片加载好后渐入的动画时间
  9. .build();

这是大概的一个配置状况,在下一篇会用一个listView的实例来讲解这个框架的具体使用

上一篇:.NET 同步与异步之锁(Lock、Monitor)(七)


下一篇:转每天一个linux命令(4):mkdir命令