Android平台网络通信库,使网络通信更快,更健壮,更简单。Volley把AsyncHttpClient和Universal_Image_Loader的优点集于一身,既可以像前者一样非常简单的进行HTTP通信,又可以像后者一样轻松加载网络图片。适合进行数据量不大但通信网络频繁的操作。
缺点:对于大数据量的网络操作,比如文件下载,表现就非常糟糕。
Volley.newRequestQueue()在每个app中执行一次最好,应该写成单例模式或者在application中完成初始化。
ImageRequest:此类里,Response doParse(NetworkResponse response) 中,在这里我们可以看到,如果我们不设置最大宽高,就会直接解码图片,这个加载的就是实际大小的图片,占用内存就不太好控制了。
Imageloader:所有请求必须放在主线程中,它的get()方法中可以设置图片大小,减小oom可能;
NetworkImageview:是对Imageview的再次封装,加入网络请求,但是没有处理图片压缩,所以oom可能性大,我们需要重写该类,在里面设置加载图片尺寸方法。
三种加载方式:默认情况下,volley会提供图片的文件缓存,路径在data/data/包名/cache/volley目录下。
方法1:利用ImageRequest为ImageView加载网络图片,不带图片内存缓存
方法2:利用ImageLoader为ImageView加载网络图片,需要自定义图片内存缓存
方法3:利用ImageLoader和NetworkImageView为ImageView加载网络图片,需要自定义图片内存缓存