Android开发中ImageLoder进行图片加载和缓存
图片处理类:
packagecom.longfei.admin.imageloder_text;
importandroid.app.Application;
importandroid.graphics.Bitmap;
importandroid.os.Environment;
importcom.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
importcom.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
importcom.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
importcom.nostra13.universalimageloader.core.DisplayImageOptions;
importcom.nostra13.universalimageloader.core.ImageLoader;
importcom.nostra13.universalimageloader.core.ImageLoaderConfiguration;
importcom.nostra13.universalimageloader.core.assist.ImageScaleType;
importcom.nostra13.universalimageloader.core.assist.QueueProcessingType;
importcom.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
importcom.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
importcom.nostra13.universalimageloader.core.download.BaseImageDownloader;
importjava.io.File;
/**
*Createdbyadminon2016/4/9.
*/
publicclassImageLoadingextendsApplication{
@Override
publicvoidonCreate(){
//TODOAuto-generatedmethodstub
super.onCreate();
ImageLoaderConfigurationconfig=newImageLoaderConfiguration.Builder(
this)
.memoryCacheExtraOptions(480,800)
//maxwidth,maxheight,即保存的每个缓存文件的最大长宽
.discCacheExtraOptions(480,800,null)
//CanslowImageLoader,useitcarefully(Betterdon'tuse
//it)/设置缓存的详细信息,最好不要设置这个
.threadPoolSize(3)
//线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY-2)
.denyCacheImageMultipleSizesInMemory()
.memoryCache(newUsingFreqLimitedMemoryCache(2*1024*1024))
//Youcanpassyourownmemorycache
//implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2*1024*1024)
.discCacheSize(50*1024*1024)
.discCacheFileNameGenerator(newMd5FileNameGenerator())
//将保存的时候的URI名称用MD5加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileCount(100)
//缓存的文件数量
.discCache(
newUnlimitedDiscCache(newFile(Environment
.getExternalStorageDirectory()
+"/myApp/imgCache")))
//自定义缓存路径
.defaultDisplayImageOptions(getDisplayOptions())
.imageDownloader(
newBaseImageDownloader(this,5*1000,30*1000))
.writeDebugLogs()//Removeforreleaseapp
.build();//开始构建
ImageLoader.getInstance().init(config);
}
privateDisplayImageOptionsgetDisplayOptions(){
DisplayImageOptionsoptions;
options=newDisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher)//设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_launcher)//设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)//设置下载的图片是否缓存在内存中
.cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中
.considerExifParams(true)//是否考虑JPEG图像EXIF参数(旋转,翻转)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//
//.delayBeforeLoading(intdelayInMillis)//int
//delayInMillis为你设置的下载前的延迟时间
//设置图片加入缓存前,对bitmap进行设置
//.preProcessor(BitmapProcessorpreProcessor)
.resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
.displayer(newRoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少
.displayer(newFadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
.build();//构建完成
returnoptions;
}
}
packagecom.longfei.admin.imageloder_text;
importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.ImageView;
importcom.nostra13.universalimageloader.core.ImageLoader;
importcom.nostra13.universalimageloader.core.assist.FailReason;
importcom.nostra13.universalimageloader.core.listener.ImageLoadingListener;
/**
*1、Universal-ImageLoader的配置
*
*2、用Universal-ImageLoader加载网络图片和本地图片
*
*@authorAdministrator
*/
publicclassMainActivityextendsActivity{
privateImageLoaderloader;
privateImageViewiv_img;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loader=ImageLoader.getInstance();//实例化ImageLoder
iv_img=(ImageView)findViewById(R.id.iv_img);
Stringurl="file:///"+"加载本地图片";
//加载网络图片,第一个参数为路径
//loader.displayImage("http://static.oschina.net/uploads/user/494/988131_100.jpg?t=1419303093000",iv_img);
loader.displayImage("http://static.oschina.net/uploads/user/494/988131_100.jpg?t=1419303093000",iv_img,newImageLoadingListener(){
@Override
publicvoidonLoadingStarted(Strings,Viewview){
Log.i("info","加载开始");
}
@Override
publicvoidonLoadingFailed(Strings,Viewview,FailReasonfailReason){
Log.i("info","加载失败");
}
@Override
publicvoidonLoadingComplete(Strings,Viewview,Bitmapbitmap){
Log.i("info","加载完毕");
}
@Override
publicvoidonLoadingCancelled(Strings,Viewview){
Log.i("info","加载取消");
}
});
}
}