Android网络图片加载框架:Universal-ImageLoader简介
2016-01-12 17:05
423 查看
网络图片加载框架:Universal-ImageLoader
github开源地址:https://github.com/nostra13/Android-Universal-Image-Loader
特点:
支持本地图片,网络图片多线程异步加载及缓存处理
根据自己项目个性化配置ImageLoader来加载图片
图片加载过程监听处理,可以暂停图片加载,重新加载等
根据当前内存情况自动处理图片,防止OOM
不完善之处:没有对本地文件压缩处理的相关方法,默认都是Src模式设置图片,没有针对图片的Background属性开放API
使用:
这里写代码片
最后不要忘记在AndroidManifest.xml中配置MyApplication及INTENT网络请求权限 。更多 方法正在学习中。
github开源地址:https://github.com/nostra13/Android-Universal-Image-Loader
特点:
支持本地图片,网络图片多线程异步加载及缓存处理
根据自己项目个性化配置ImageLoader来加载图片
图片加载过程监听处理,可以暂停图片加载,重新加载等
根据当前内存情况自动处理图片,防止OOM
不完善之处:没有对本地文件压缩处理的相关方法,默认都是Src模式设置图片,没有针对图片的Background属性开放API
使用:
/** * 使用universal-imageloader框架时,在Application中进行初始化及配置操作 * @description: * @date 2016-1-12 下午4:18:34 */ public class MyApplication extends Application { public static ImageLoader loader; @Override public void onCreate() { initConfiguration(); } /** * 初始化ImageLoaderConfiguration,通常不需要设置这么多属性 * @description: * @author ldm * @date 2016-1-12 下午4:42:31 */ private void initConfiguration() { ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(480, 800) // 设置内存缓存文件的最大长宽 .diskCacheExtraOptions(480, 800, null) // 设置本地缓存的详细信息(缓存的最大长宽),最好不要设置这个 .threadPoolSize(3) // 设置线程池内加载的数量 .threadPriority(Thread.NORM_PRIORITY - 2) // 设置当前线程的优先级 .tasksProcessingOrder(QueueProcessingType.FIFO) // 设置缓存策略 .denyCacheImageMultipleSizesInMemory()// 设置缓存显示不同大小的同一张图片 .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) // 设置通过自己的内存缓存实现 .memoryCacheSize(2 * 1024 * 1024) // 设置内存缓存的最大值 .memoryCacheSizePercentage(13) // 设置内存缓存最大大小占当前应用可用内存的百分比,默认是当前应用可用内存的1/8 .discCache(new UnlimitedDiskCache(new File(Environment.getExternalStorageDirectory() + "mydata/imagecaches")))// 设置缓存文件目录 .diskCacheSize(50 * 1024 * 1024) // 设置 sd卡(本地)缓存的最大值50M .diskCacheFileCount(100) // 设置可以缓存的文件数量 // .diskCacheFileNameGenerator(new Md5FileNameGenerator()) 设置保存的URL用MD5加密 .imageDownloader(new BaseImageDownloader(this)) // 设置默认最大连接时间 .imageDecoder(new BaseImageDecoder(false)) // default .defaultDisplayImageOptions(getDisplayOptions()) // 设置自定义的DisplayImageOptions .writeDebugLogs() // 设置打印log .build(); // 开始构建 ImageLoader.getInstance().init(config); loader=ImageLoader.getInstance(); } /** * 自定义DisplayImageOptions * @description: * @date 2016-1-12 下午4:46:47 */ private DisplayImageOptions getDisplayOptions() { DisplayImageOptions options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载中显示的图片 .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或错误时显示的图片 .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载失败时候显示的图片 .cacheInMemory(true)// 设置下载的图片是否缓存在内存中 .cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中 .considerExifParams(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转) .imageScaleType(ImageScaleType.IN_SAMPLE_INT)// 设置图片以如何的编码方式显示 .bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型 .delayBeforeLoading(0)// 设置的下载前的延迟时间 .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位 .displayer(new RoundedBitmapDisplayer(20))// 设置为圆角,弧度为多少,不推荐用! .displayer(new FadeInBitmapDisplayer(100))// 设置加载好后渐入的动画时间,可能会出现闪动 .build();// 构建完成 return options; } } 在Activity中使用:
这里写代码片
public class MainActivity extends Activity { private ImageView loader_iv; private ImageLoader loader; private String url=""; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loader_iv=(ImageView)findViewById(R.id.loader_iv); loader=MyApplication.loader;// loader=ImageLoader.getInstance(); loader.displayImage(url, loader_iv);//loader.displayImage有很多参数不同的方法,方便我们针对 不同情况使用 //如果显示本地图片 url="file:///"+"文件路径"; loader.displayImage(url, loader_iv); } }
最后不要忘记在AndroidManifest.xml中配置MyApplication及INTENT网络请求权限 。更多 方法正在学习中。
相关文章推荐
- 使用CocoaPods做依赖管理(淘宝源更换为HTTPS)--转自 唐巧技术博客
- 三招教你用VLC Player 通过RTSP over Http 播放 live555 mediasever 来的流媒体
- Linux系统VM网络配置
- 前端接入HTTP协议浅析
- UNIX环境高级编程、UNIX网络编程(卷一)环境搭建
- Cocos2dx网络学习笔记(一)
- TCP拥塞控制
- ubuntu提示"您的当前网络有.local域,网络服务探测被禁用"
- HttpClient和HttpURLConnection知识收集
- 基于stm32和ESP8266实现wifi模块smartlink功能以及TCP连接
- TCP/IP建立连接(三次握手)和关闭连接(四次挥手)
- 《802.11无线网络权威指南》摘录
- TCP 慢启动(slow start)报文观察
- 从僵尸网络追踪到入侵检测 第7章 使用Honeydstats日志服务
- 使用multi curl进行http并发访问 (转)
- 前端接入HTTP协议浅析
- http返回码
- http://www.cnblogs.com/holyknight-zld/archive/2012/08/09/wcf_uploadpic.html
- 轻量级多线程网络爬虫
- 机器学习入门系列四(关键词:BP神经网络)