android--------Universal-Image-Loader图片加载框架和结合LruCache缓存图片

本博客包含包含Android-Universal-Image-Loader 网络图片加载框架实现图片加载和结合universal-image-loader与LruCache来自定义缓存图片,可以设置缓存与不缓存。

Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。是个主流的应用,很多应用都有用到,如:天猫,淘宝等。

Universal-Image-Loader源码分析:https://github.com/nostra13/Android-Universal-Image-Loader

jar包下载:Universal-Image-Loader.jar下载

效果图:

          

 由效果图可以看到第一次加载和第二次加载是不一样的,第一次加载是从服务器端获取,其中将他缓存了下来,第二次加载时就会和第一次加载比较,相同的就从缓存中获取,新的图片则重新到服务器端获取,从而提高效率,减少用户流量。

代码:

Android-Universal-Image-Loader 直接加载的方式

复制代码
private void showImg() {
             imageLoader = ImageLoader.getInstance();  
            imageUrls = Images.imageThumbUrls;
             // 使用DisplayImageOptions.Builder()创建DisplayImageOptions  
             options = new DisplayImageOptions.Builder()  
                    .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
                    .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片
                    .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片
                    .cacheInMemory(true) // 设置下载的图片是否缓存在内存中  
                    .cacheOnDisk(true) // 设置下载的图片是否缓存在SD卡中  
                    .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片  
                    .build(); // 构建完成  
    }


 imageLoader.displayImage(img[position], holder.image,options); 
复制代码

Android-Universal-Image-Loader结合LruCache

复制代码
private ImageLoader mImageLoader;
private void initView() {
    mImageLoader = ImageLoader.getInstance(3, ImageLoader.Type.LIFO);
        /***
         * 第一个参数:Url
         * 第二个参数:图片实例
         * 第三个参数:是否缓存
         * 
         */
        mImageLoader.loadImage("http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg", imageview1, true);
        mImageLoader.loadImage("http://tnfs.tngou.net/image/info/150729/d9ae7426fef7f2d58c190cffab6ad5f7.png", imageview2, true);
        mImageLoader.loadImage("http://tnfs.tngou.net/image/info/150729/c96da5303be57a916e62ca79ecb9930d.jpg", imageview3, true);
    }
复制代码

  好东西要大家一起分享,希望对大家有所帮助,呵呵!

源码点击下载

  其他网络图片加载方式,请看

Android之网络图片加载的5种模式

Android图片加载框架之Picasso非常好的图片加载缓存库

Android之Fresco(facebook的强大Android图片加载的框架)

Android之Glide(非常好用的图片加载框架)

原文地址:https://www.cnblogs.com/zhangqie/p/6486606.html