标签:
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);
标签:
原文地址:http://blog.csdn.net/little_shengsheng/article/details/51351408