码迷,mamicode.com
首页 > 移动开发 > 详细

Android图片缓存

时间:2016-05-12 20:10:48      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

Android基于universal-image-loader-1.9.4.jar的图片缓存。
jar包可以去网上下载,其中封装了网络获取图片及在手机开辟缓存区域的方法,只需要做如下配置操作就可以使用。
它的作用方式是这样的,如果手机连接网络,那么该组件会从网络获取图片并将图片写入缓存,如果没有连接网络,那么会从缓存区域获取已经加载的图片并显示出来。

一下是具体的配置和使用方式:

1:添加jar包,并添加依赖。

2:配置universal-image-loader,代码:

import com.inext.test.volleytest.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;

/**
 * Created by Administrator on 2016/5/6.
 */
public class ImgLoaderUtil {

    private static DisplayImageOptions options =
            new DisplayImageOptions.Builder()
                    //下载时显示的图片
            .showImageOnLoading(R.mipmap.ic_launcher)
                    //下载错误时显示的图片
            .showImageOnFail(R.mipmap.ic_launcher)
                    //下载为空时显示的图片
            .showImageForEmptyUri(R.mipmap.ic_launcher)
                    //存储和硬盘
            .cacheInMemory(true)
            .cacheOnDisk(true)
            .bitmapConfig(Bitmap.Config.ARGB_8888)
                    //缩放类型
            .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
            //复位
            .resetViewBeforeLoading(true)
            .build();

    public static void display(String url,ImageView imageView){
        //此ImageLoader不是volley下的
        ImageLoader.getInstance().displayImage(url,imageView,options);

    }
public static void clear(){
    ImageLoader.getInstance().clearDiskCache();
    ImageLoader.getInstance().clearMemoryCache();
}
    public static void imageLoader(Context context){
        ImageLoaderConfiguration configuration =
                new ImageLoaderConfiguration.Builder(context)
                .denyCacheImageMultipleSizesInMemory()
                        //线程池推荐大小为3
                .threadPoolSize(3)
                        //线程优先级
                .threadPriority(Thread.NORM_PRIORITY)
                        //内存缓存大小
                .memoryCacheSize((int) (Runtime.getRuntime().maxMemory()/8))
                        //硬盘缓存大小
                .diskCacheSize(50*1024*1024)
                        //加密方式
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                        //默认设置
                .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
                .imageDownloader(new BaseImageDownloader(context,50000,50000))
                        //无限制缓存
                .diskCache(new UnlimitedDiskCache(FileUitlity.getInstance(context).makeDir("imgCache")))
                .build();
        ImageLoader.getInstance().init(configuration);
    }
}

3:调用:

//初始化
ImgLoaderUtil.imageLoader(context);
//传入图片地址和要显示的imageview,系统会自动处理网络与缓存并加载显示图片
ImgLoaderUtil.display(url, img);

Android图片缓存

标签:

原文地址:http://blog.csdn.net/little_shengsheng/article/details/51351408

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!