【tips】:
上一节课讲了如何傻瓜式配置Universal-Image-Loader框架,现在我们来讨论下,如何定义图片下载路径名称以及格式,这里我们就要讨论下了,那么Universal-Image-Loader框架默认缓存的图片会是什么样。
首先我们在内存卡中找到了我们的包:ImageLoader
上面是这几次拿来实验的图片,不过呢,仔细一看其实很不像图片:
我们来看下
==================================================================================
情况一
默认缓存,这种情况下无需做处理,下载下来的是默认的文件格式,名字也是默认。图片大小比原来小。
这是下载下来的图片,观看的时候还要选择。不过好处是基本已经裁剪过了,显示比较小。
==================================================================================
情况二:
自定义缓存位置图片名称以及格式
<!--EndFragment-->
public void loadimage(View v){ final ImageView mImageView = (ImageView) findViewById(R.id.image); String imageUrl="http://p4.so.qhmsg.com/sdr/1228_768_/t01a44e436353c96159.jpg"; // ImageLoader.getInstance().displayImage(imageUrl, mImageView); // imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 ImageSize mImageSize = new ImageSize(500, 800); //显示图片的配置 DisplayImageOptions options; options = new DisplayImageOptions.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(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间 //设置图片加入缓存前,对bitmap进行设置 //.preProcessor(BitmapProcessor preProcessor) .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位 .displayer(new RoundedBitmapDisplayer(80))//是否设置为圆角,弧度为多少 .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间 .build();//构建完成 for(i=0;i<imgname.length;i++){ imageload.loadImage(imgname[i], mImageSize, options, new SimpleImageLoadingListener(){ @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { super.onLoadingComplete(imageUri, view, loadedImage); mImageView.setImageBitmap(loadedImage); /** 保存方法 */ File f=new File("/storage/emulated/0/imageloader/cache/"+i+".png"); if (f.exists()) { f.delete(); } try { FileOutputStream out = new FileOutputStream(f); loadedImage.compress(Bitmap.CompressFormat.PNG, 90, out); out.flush(); out.close(); Log.i("TAG", "已经保存"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } }
将昨天的代码改了下:
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage)
在这个方法中,下载完成后会给我们一个Bitmap的图片文件,也是用于显示在ImageView上面的,既然已经获取到了Bitmap那么将它保存在本地也是十分方便简单的的,这样的话就可以完美解决默认缓存坑爹的名字和格式了。因为每次下载一个图片需要提供一个URL地址,所以呢为了类区分,专门建立一个类用于存放URL
public class ConfigField { public static class ImageURL{ public static final String yuelu[]=new String[]{"http://img.ivsky.com/img/tupian/img/201105/02/hunan_changsha_yuelushuyuan-013.jpg", "http://pic19.nipic.com/20120327/2885592_152659703164_2.jpg","http://img.ivsky.com/img/tupian/img/201105/02/hunan_changsha_yuelushuyuan-009.jpg" ,"http://a3.att.hudong.com/03/86/20300000432220134079869338986.jpg", "http://img.ivsky.com/img/tupian/img/201105/02/hunan_changsha_yuelushuyuan-001.jpg"}; } }
由上面的代码看出所有的URL保存在String类型数组里面使用static修饰符可以用类直接调用,比较方便。MainActivity建立一个字符串数组来接收这个URL
public String[] imgname=ConfigField.ImageURL.yuelu;
使用for循环一直加载
这样运行后打开手机内存卡看到的情况是:
到此已经成功,上面的代码还有些疑问,因为切割的圆角图片并没有成功,这个回去研究一下,下节课发上来
<!--EndFragment-->
相关推荐
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置),易懂易用。
Android-Universal-Image-Loader图片异步加载框架,欢迎大家下载使用。
universal-image-loader 针对https引用了自签名证书,解决图片加载不出。
universal-image-loader-1.9.3-with-sources.jar 修改线程类型,加快图片加载速度,解决list滑动加载卡顿
这个是图片加载的依赖包 大家可以随时下载 中间还加了V4包
Android-Universal-Image-Loader-1.9.5,安卓图片加载框架
来自俄罗斯的异步图片加载缓存 Android-Universal-Image-Loader 图片缓存Android-Universal-Image-Loader-master
图片缓存框架Android-Universal-Image-Loader
Android-Universal-Image-Loader的示例。 效果 http://blog.csdn.net/wwj_748/article/details/10079311
利用Universal-Image-Loader加载网络图片。只有加载网络的。主要还是Universal-Image-Loader开源框架。。其他好多功能还在发掘中
使用很广的开源图片下载框架,具体使用方法百度一下universal-image-loader很多。
universal-image-loader-1.9.5-sources.jar
universal-image-loader-1.9.5.jar,universal-image-loader-demo.rar,Android-Universal-Image-Loader-master.zip,Android Universal Image Loader 源码分析.doc
Android-Universal-Image-Loader使用详解
开源框架Universal-Image-Loader的简单例子,博客地址:http://blog.csdn.net/wei18359100306/article/details/41920677
开源框架universal-image-loader使用的包—1.9.0
Universal-Image-Loader demo 有全面的注释
Android-Universal-Image-Loader官方的Demo和jar包,原Demo图片URL不能访问,已经被我替换成可以访问的URL
universal-image-loader 是android开发中很常用的加载图片功能的开源框架,方便好用!
http://www.bdqn.cn/news/201308/10849.shtml