Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.
ImageLoader的内部使用ImageRequest来实现,它的构造器可以传入一个ImageCache缓存形参,实现了图片缓存的功能,同时还可以过滤重复链接,避免重复发送请求。
下面是ImageLoader加载图片的实现方法:
public void displayImg(View view){
ImageView imageView = (ImageView)this.findViewById(R.id.image_view);
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());
ImageListener listener = ImageLoader.getImageListener(imageView,R.drawable.default_image, R.drawable.default_image);
imageLoader.get("http://developer.android.com/images/home/aw_dac.png", listener);
//指定图片允许的最大宽度和高度
//imageLoader.get("http://developer.android.com/images/home/aw_dac.png",listener, 200, 200);
}
使用ImageLoader.getImageListener()方法创建一个ImageListener实例后,在imageLoader.get()方法中加入此监听器和图片的url,即可加载网络图片.
下面是使用LruCache实现的缓存类
public class BitmapCache implements ImageCache {
private LruCache<String, Bitmap> cache;
public BitmapCache() {
cache = new LruCache<String, Bitmap>(8 * 1024 * 1024) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
return bitmap.getRowBytes() * bitmap.getHeight();
}
};
}
@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
}
最后,别忘记在AndroidManifest.xml文件中加入访问网络的权限
<uses-permission android:name="android.permission.INTERNET"/>
本文示例源代码下载地址:
http://download.csdn.net/detail/gaolu/7815527
分享到:
相关推荐
Volley框架的ImageLoader加载网络图片例程
使用volley加载网络图片。可以直接加载,也可以使用ImageLoader、LruCache 也可以使用NetworkImageView
在这个布局当中我们将Volley框架的所有功能都做成了一个按钮,按下按钮之后就会在“显示结果”下面显示结果,显示结果下面使用了一个ScrollView,并在ScrollView下面嵌套了一个Textview和Imageview,用于把我们加载...
Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载. ImageLoader的内部使用ImageRequest来实现,它的构造器可以传入一个ImageCache缓存形参,实现了图片...
Volley_ImageLoad_Test Volley框架的使用-从网络获取图片 1.缓存功能的简单介绍 LruCache ImageCache 2.加载网络图片及监听 ImageRequest ImageLoader NetworkImageView(或者普通的ImageView) ImageListener
Volley的基本使用方法,如何封装Volley,如何利用Volley实现多文件上传,如何利用ImageLoader进行图片加载。
本来想分析Universal Image Loader的源码,但是发现Volley已经实现了网络图片的加载功能.其实,网络图片的加载也是分几个步骤: 1. 获取网络图片的url. 2. 判断该url对应的图片是否有本地缓存. 3. 有本地缓存,直接...
目前Android 发展至今优秀的图片加载框架太多,例如: Volley ,Picasso,Imageloader,Glide等等。但是作为程序猿,懂得其中的实现原理还是相当重要的,只有懂得才能更好地使用。于是乎,今天我就简单设计一个网络...
手写高并发图片框架,参考 Glide,ImageLoader-universal,volley,facebook 框架等。采用优先级阻塞时队列,多线程并发获取图片。采用 Glide 的调用模式,简单易用。使用 DiskLruCache 和 LruCache 进行二级缓存。
该框架封装的扩展性很强,支持OkHttp,Volley里面也封装了ImageLoader,自身作为图片加载框架,不过这块功能没有一些专门的图片加载框架强大,对于简单的需求可以使用,对于稍复杂点的需求还是需要用到专门的图片...
主要介绍了Volley的基本用法,如何对Volley进行封装,如何利用Volley实现多文件上传,如何利用ImageLoader进行图片加载。
优秀的图片加载框架不要太多,什么UIL , Volley ,Picasso,Imageloader等等。但是作为一名合格的程序猿,必须懂其中的实现原理,于是乎,今天我就带大家一起来设计一个加载网络、本地的图片框架。有人可能会说,自己...
依赖我使用“Cube ImageLoader”作为基础项目,使用 Volley 作为 HTTP 请求框架。职能1.异步加载本地图片文件2.异步加载带有url的网络图片。 (在这个项目中很容易学习如何构建一个最小的异步图像加载器框架/库,它...
[2]网络框架封装,涉及到Volley、OkHttp、RxJava、NoHttp和Retrofit等封装使用。[3]图片加载,包含缓存处理及优化,考虑到的框架包含ImageLoader、Picasso、Glide等。[4]基本数据处理及解析,其中json数据考虑使用...