使用Volley框架的ImageLoader加载网络图片

Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载. 
ImageLoader的内部使用ImageRequest来实现,它的构造器可以传入一个ImageCache缓存形参,实现了图片缓存的功能,同时还可以过滤重复链接,避免重复发送请求。 
下面是ImageLoader加载图片的实现方法: 
Java代码   收藏代码
  1. public void displayImg(View view){  
  2.     ImageView imageView = (ImageView)this.findViewById(R.id.image_view);  
  3.     RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());   
  4.           
  5.     ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());  
  6.   
  7.     ImageListener listener = ImageLoader.getImageListener(imageView,R.drawable.default_image, R.drawable.default_image);  
  8.     imageLoader.get("http://developer.android.com/images/home/aw_dac.png", listener);  
  9.     //指定图片允许的最大宽度和高度  
  10.     //imageLoader.get("http://developer.android.com/images/home/aw_dac.png",listener, 200, 200);  
  11. }  

使用ImageLoader.getImageListener()方法创建一个ImageListener实例后,在imageLoader.get()方法中加入此监听器和图片的url,即可加载网络图片. 

下面是使用LruCache实现的缓存类 
Java代码   收藏代码
  1. public class BitmapCache implements ImageCache {  
  2.   
  3.     private LruCache<String, Bitmap> cache;  
  4.   
  5.     public BitmapCache() {  
  6.         cache = new LruCache<String, Bitmap>(8 * 1024 * 1024) {  
  7.             @Override  
  8.             protected int sizeOf(String key, Bitmap bitmap) {  
  9.                 return bitmap.getRowBytes() * bitmap.getHeight();  
  10.             }  
  11.         };  
  12.     }  
  13.   
  14.     @Override  
  15.     public Bitmap getBitmap(String url) {  
  16.         return cache.get(url);  
  17.     }  
  18.   
  19.     @Override  
  20.     public void putBitmap(String url, Bitmap bitmap) {  
  21.         cache.put(url, bitmap);  
  22.     }  
  23. }  

最后,别忘记在AndroidManifest.xml文件中加入访问网络的权限 
Java代码   收藏代码
  1. <uses-permission android:name="android.permission.INTERNET"/>  

本文示例源代码下载地址: 
http://download.csdn.net/detail/gaolu/7815527 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值