Android图片缓存

来源:互联网 发布:单片机与plc的区别 编辑:程序博客网 时间:2024/06/05 04:38

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);
0 0