在android中的加载网络图片是一件十分令人头疼的事情,在网上有着许多关于加载网络图片的开源库,可以让我们十分方便的加载网络图片。在这里我主要介绍一下我自己在使用Volley, Picasso, Universal-Imageloader的一些使用的感悟。以及最基本的用法介绍。
1.Volley
给ImageView设置图片源
// imageView是一个ImageView实例
// ImageLoader.getImageListener的第二个参数是默认的图片resource id
// 第三个参数是请求失败时候的资源id,可以指定为0
ImageListener listener = ImageLoader.getImageListener(imageView, android.R.drawable.ic_menu_rotate, android.R.drawable.ic_delete);
mImageLoader.get(url, listener);
使用NetworkImageView
Volley提供了一个新的控件NetworkImageView来代替传统的ImageView,这个控件的图片属性可以通过
mImageView.setImageUrl(url, imageLoader)
来设定。而且,这个控件在被从父控件detach的时候,会自动取消网络请求的,即完全不用我们担心相关网络请求的生命周期问题。
mImageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache());
.... ...
if(holder.imageRequest != null) {
holder.imageRequest.cancel();
}
holder.imageRequest = mImageLoader.get(BASE_UR + item.image_url, holder.imageView, R.drawable.loading, R.drawable.error);
总结:如果你的工程项目,是一个比较小的项目,或者要求不是很高的项目,处理比较简单的可以使用这个库,这个库是Google 2013 I/O 发布的一个开源库。使用这个库在图片的处理上,没有提供任何的图片处理的操作,个人感觉这个库主要在网络数据连接上比较好,在图片处理上还是不够完善,强大。
2.Picasso
Picasso加载网络图片的使用很简单,只需要一行代码就可以搞定。
Picasso.with(context) .load(url).resize(50, 50).centerCrop().into(imageView)
Picasso有如下特性:
- 处理Adapter中的 ImageView 回收和取消已经回收ImageView的下载进程
- 使用最少的内存完成复杂的图片转换,比如把下载的图片转换为圆角等
- 自动添加磁盘和内存缓存
总结:如果你的项目里面,对于图片有一些具体的要求的话,建议使用这个库,但是这个库当你需要对图片作一些具体的操作比如加载圆角矩形图片、裁剪图片为圆形时,需要你自己写一些操作,如果基础不够好的会感觉很困难。还有就是这个库我们只能看到结果,无法关心图片的下载过程。
3.Universal-ImageLoader
- 先要配置ImageLoaderConfiguration这个类实现全局ImageLoader的实现情况。可以选择在Application中初始化设置该类。
- 使用ImageLoader进行图片加载的时候,先要实例化ImageLoader
总结:这个库有着对加载网络图片的吵详细配置。可以根据个人的喜欢,进行一些配置等等。并且可以实现图片下载过程的监听。且可以支持图片下载完成后,显示圆形或者圆角矩形的图片。
分享到:
相关推荐
Android图片加载&使用介绍
甚至还可以从各种各样奇葩的数据源中加载图片。 加载网络图片 很多情况下,我们使用图片加载库就是为了加载网络图片。网络操作是一个很复杂的东西。试想一下,如果没有图片加载库,我们就要手动去下载图片,缓存图片...
本次封装仅包含图片加载库的基本功能: 初始化图片加载库 显示图片(圆角,圆形等样式) 下载图片
Android 图片异步加载 加载网络图片
Android网络图片加载缓存处理库的使用,用ImageLoader写的,代码很简,调用图片很方便!
图片加载涉及到图片的缓存、图片的处理、图片的显示等。四种常用的图片加载框架,分别是Fresco、ImageLoader、 Picasso、 Glide,包括他们各自的优缺点、使用步骤...
Glide图片加载库的封装类,占位符 不会覆盖CircleImageView,支持直接加载静态图、动态图到View,或者获取Bitmap,Drawable。
Android封装多个第三方图片加载库,可以多个加载库切换,比如Glide,UIL等
Android 强大的图片加载类 图库效果,详细的Handler操作案例。
这是一个Android异步图片加载的例子
Android中网络动态加载图片在ListView中同时可以在ListView中添加各种控件
Android 中加载大图片时内存溢出的解决方案 在 Android 开发中,加载大图片时经常会出现内存溢出的问题。这是由于大图片的解码需要大量的内存空间,从而导致应用程序崩溃。因此,解决加载大图片时的内存溢出问题是...
android图片加载库Picasso
Glide 4.5源码 Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术
主要为大家详细介绍了Android使用ViewPager加载图片和轮播视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android优秀的图片加载库Glide
使用Android Studio 练习RecyclerView 异步加载图片,解决图片乱序问题。
android webView加载html 并引用本地资源(图片、字体库)
介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理。 二、网上的实现方式 这里介绍下网上常见的...
Android AsyncTask用法和异步加载图片通过AsyncTask 从网络上异步加载一张图片