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","加载取消"); } }); } }