Android利用Volley框架加载网络图片
Volley框架是在Google I/O 2013上Volley发布的,目的是使Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。我们也简单了解下Volley引入的背景,在Volley出现以前,我们可能面临如下的问题,比如要在ListView或是GridView中加载数量较多的图片时:先在ListAdapter#getView()里开始图像的读取,再通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源,然后在AsyncTask#onPostExecute()里设置相应ImageView的属性。这样下来不仅仅步骤繁琐,而且不考虑周全的话,还可能出现OOM等问题。现在有了Volley后我们只需要一个函数即可实网络图片的加载。简单地讲Volley功能有:</span>
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;
networkImageView.setErrorImageResId(R.drawable.failed_icon);//加载失败时显示的图片
networkImageView.setImageUrl("http://xxxxxxx.jpeg",imageLoader);//目标图片的URL地址(第一个参数用于指定图片的URL地址,第二个参数则是上面创建好的ImageLoader对象)。