Android开发中ImageLoder进行图片加载和缓存
程序员文章站
2024-02-29 15:34:40
图片处理类:
package com.longfei.admin.imageloder_text;
import android.app.applicat...
图片处理类:
package com.longfei.admin.imageloder_text; import android.app.application; import android.graphics.bitmap; import android.os.environment; import com.nostra13.universalimageloader.cache.disc.impl.unlimiteddisccache; import com.nostra13.universalimageloader.cache.disc.naming.md5filenamegenerator; import com.nostra13.universalimageloader.cache.memory.impl.usingfreqlimitedmemorycache; 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.assist.queueprocessingtype; import com.nostra13.universalimageloader.core.display.fadeinbitmapdisplayer; import com.nostra13.universalimageloader.core.display.roundedbitmapdisplayer; import com.nostra13.universalimageloader.core.download.baseimagedownloader; import java.io.file; /** * created by admin on 2016/4/9. */ public class imageloading extends application { @override public void oncreate() { // todo auto-generated method stub super.oncreate(); imageloaderconfiguration config = new imageloaderconfiguration.builder( this) .memorycacheextraoptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽 .disccacheextraoptions(480, 800, null) // can slow imageloader, use it carefully (better don't use // it)/设置缓存的详细信息,最好不要设置这个 .threadpoolsize(3) // 线程池内加载的数量 .threadpriority(thread.norm_priority - 2) .denycacheimagemultiplesizesinmemory() .memorycache(new usingfreqlimitedmemorycache(2 * 1024 * 1024)) // you can pass your own memory cache // implementation/你可以通过自己的内存缓存实现 .memorycachesize(2 * 1024 * 1024) .disccachesize(50 * 1024 * 1024) .disccachefilenamegenerator(new md5filenamegenerator()) // 将保存的时候的uri名称用md5 加密 .tasksprocessingorder(queueprocessingtype.lifo) .disccachefilecount(100) // 缓存的文件数量 .disccache( new unlimiteddisccache(new file(environment .getexternalstoragedirectory() + "/myapp/imgcache"))) // 自定义缓存路径 .defaultdisplayimageoptions(getdisplayoptions()) .imagedownloader( new baseimagedownloader(this, 5 * 1000, 30 * 1000)) .writedebuglogs() // remove for release app .build();// 开始构建 imageloader.getinstance().init(config); } private displayimageoptions getdisplayoptions() { 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(20))// 是否设置为圆角,弧度为多少 .displayer(new fadeinbitmapdisplayer(100))// 是否图片加载好后渐入的动画时间 .build();// 构建完成 return options; } } package com.longfei.admin.imageloder_text; import android.app.activity; import android.graphics.bitmap; import android.os.bundle; import android.util.log; import android.view.view; import android.widget.imageview; import com.nostra13.universalimageloader.core.imageloader; import com.nostra13.universalimageloader.core.assist.failreason; import com.nostra13.universalimageloader.core.listener.imageloadinglistener; /** * 1、 universal-imageloader的配置 * * 2、用universal-imageloader加载网络图片和本地图片 * * @author administrator */ public class mainactivity extends activity { private imageloader loader; private imageview iv_img; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); loader=imageloader.getinstance();//实例化imageloder iv_img=(imageview)findviewbyid(r.id.iv_img); string url="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, new imageloadinglistener() { @override public void onloadingstarted(string s, view view) { log.i("info","加载开始"); } @override public void onloadingfailed(string s, view view, failreason failreason) { log.i("info","加载失败"); } @override public void onloadingcomplete(string s, view view, bitmap bitmap) { log.i("info","加载完毕"); } @override public void onloadingcancelled(string s, view view) { log.i("info","加载取消"); } }); } }
推荐阅读
-
Android开发中ImageLoder进行图片加载和缓存
-
Android中Glide加载库的图片缓存配置究极指南
-
Android开发中ImageLoder进行图片加载和缓存
-
Android程序开发ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)
-
Android开发实现webview中img标签加载本地图片的方法
-
Android中Glide加载圆形图片和圆角图片实例代码
-
Android加载html中svg格式图片进行显示
-
Android加载html中svg格式图片进行显示
-
Android中Glide加载圆形图片和圆角图片实例代码
-
Android开发实现webview中img标签加载本地图片的方法