Volley框架是在Google I/O 2013上Volley发布的,目的是使Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。我们也简单了解下Volley引入的背景,在Volley出现以前,我们可能面临如下的问题,比如要在ListView或是GridView中加载数量较多的图片时:先在ListAdapter#getView()里开始图像的读取,再通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源,然后在AsyncTask#onPostExecute()里设置相应ImageView的属性。这样下来不仅仅步骤繁琐,而且不考虑周全的话,还可能出现OOM等问题。现在有了Volley后我们只需要一个函数即可实网络图片的加载。简单地讲Volley功能有:</span>   - JSON,图像等的异步加载; 
   - 网络请求的排序; 
   - 网络请求的优先级处理; 
   - 图片缓存; 
   - 多级别取消请求; 
   - 和Activity生命周期的联动(Activity结束时同时取消所有网络请求)等。                                                                                                               今天先简单贴下用Volley加载网络图片,下次有时间再贴下用Volley实现http请求及json数据加载。用Volley加载网络图片常用有两种方式,一种是用ImageLoader,另外是用Volley封装好的图片控件NetworkImageView: 
   - 第一种方式步骤: 
   -  创建一个RequestQueue对象,就一句话:RequestQueue mQueue = Volley.newRequestQueue(context); 
     - 创建一个ImageLoader对象,ImageLoader mImageLoader= new ImageLoader(mRequestQueue, new BitmapLruCache(cacheSize));       public class BitmapLruCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache {
  public BitmapLruCache(int maxSize) {
  super(maxSize);
  }
  protected int sizeOf(String key, Bitmap bitmap) {
  return (bitmap.getRowBytes() * bitmap.getHeight());
  }
  public Bitmap getBitmap(String url) {
  return ((Bitmap) get(url));
  }
  public void putBitmap(String url, Bitmap bitmap) {
  put(url, bitmap);
  }
  }***创建ImageLoader中的参数cacheSize就是我们设置的缓存文件最大值,比如可以设置int cacheSize= 10 * 1024 * 1024;      - 创建ImageListener listener = ImageLoader.getImageListener(imageView,R.drawable.default_image, R.drawable.failed_image);//imageView参数就是我们要展示图片的控件 
   - 然后就可以加载图片了:imageLoader.get("http://www.xxxxxxx.jpg", listener);//传入图片url及上面创建的listener就可OK. 
   - 第二种方式,就是利用Volley封装好的NetworkImageView加载图片。 
   - 这种方式更简单,把NetworkImageView当成我们平时用的ImageView放到我们要加载图片的布局xml中,在对应的代码中用NetworkImageView imageView=findViewById();找到控件, 
   - networkImageView.setDefaultImageResId(R.drawable.default_icon);//加载中显示的图片
  networkImageView.setErrorImageResId(R.drawable.failed_icon);//加载失败时显示的图片
  networkImageView.setImageUrl("http://xxxxxxx.jpeg",imageLoader);//目标图片的URL地址(第一个参数用于指定图片的URL地址,第二个参数则是上面创建好的ImageLoader对象)。    
 
            
                 本文由用户
 fydxdk  自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 
                 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
                 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!