zoukankan      html  css  js  c++  java
  • 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(非常好用的图片加载框架)

  • 相关阅读:
    NOIp2018集训test-9-23
    NOIp2018集训test-9-22(am/pm) (联考三day1/day2)
    NOIp2018集训test-9-21(am/pm)
    NOIp2018集训test-9-19(am&pm)
    day41.txt
    day40表关系
    day39
    day38数据库
    day37
    day36
  • 原文地址:https://www.cnblogs.com/zhangqie/p/6486606.html
Copyright © 2011-2022 走看看