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

2022-12-04,,,,

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),它会把图片首先缓存到本地,然后在从本地进行读取这些图片,

这是官方使用的效果图

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

    <manifest>
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Include next permission if you want to allow UIL to cache images on SD card -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
    <application android:name="MyApplication">
    ...
    </application>
    </manifest>

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

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



先开始使用的第一步:

配置ImageLoaderConfiguration这个类实现全局ImageLoader

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

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

第二步

配置一些图片选项

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

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

android图片缓存框架Android-Universal-Image-Loader的相关教程结束。

《android图片缓存框架Android-Universal-Image-Loader.doc》

下载本文的Word格式文档,以方便收藏与打印。